4 回答

TA貢獻(xiàn)1884條經(jīng)驗(yàn) 獲得超4個(gè)贊
您可以使用 :
def getUserPoint(userName):
f = open('userScores.txt', 'r')
for line in f.readlines():
result = line.splitlines()
if userName in line:
f.close()
return result
f.close()
return "nill"
s = getUserPoint(input('Ann'))
print(s)

TA貢獻(xiàn)2012條經(jīng)驗(yàn) 獲得超12個(gè)贊
一個(gè)問題是您有一個(gè)匹配的 else 語句,它將立即結(jié)束函數(shù)和循環(huán)
查看完所有行后,您需要返回默認(rèn)結(jié)果
def getUserPoint(userName):
with open('userScores.txt') as f:
for line in f:
if userName == line.rstrip().split(',')[0]:
return line
return "nill"
然后,如圖所示,您要么想要拆分逗號并檢查第一列,要么userName in line。否則,您正在檢查
'Ann' in ["Ann, 100", ""]
因?yàn)閟plitlines()將在末尾的換行符處分割,返回 False

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超5個(gè)贊
見下文
該代碼負(fù)責(zé)關(guān)閉文件。
如果沒有找到匹配則返回None,否則返回“用戶點(diǎn)”
def get_user_point(user_name):
with open('userScores.txt', 'r') as f:
lines = [l.strip() for l in f]
for line in lines:
parts = line.split(',')
if user_name == parts[0]:
return parts[1]

TA貢獻(xiàn)1868條經(jīng)驗(yàn) 獲得超4個(gè)贊
def getUserPoint(userName):
with open('userScores.txt') as f:
for line in f:
if userName == line.split(',')[0]:
return line
return "nill"
由于我是 Python 和一般編程的新手,我可能會(huì)問更多問題。感謝大家的幫助。
添加回答
舉報(bào)