2016-04-27 91 views
-1

我有這個程序要求用戶完成10個數學問題,每次他們得到一個正確的答案時,1分被添加到他們的分數。Python,用多個參數寫入txt

current_class = Classes[student_class] 
class_score = open(current_class, 'r+') 
class_format = (name, "has a score of", Score) 
class_score.write(class_format) 
print(class_score.read()) 

然而,當我讀txt文件則返回錯誤

TypeError: must be str, not tuple 

我希望它打印:

Imran has a score of 10 

回答

0

你可以做,

class_score.write("{} has score {}".format(name, score)) 

print("{} has score {}".format(name, score), file=class_score) 

這種方式,你可以做以下的爲好,

print(*class_format, file=class_score) 

我寧願:第二個。

0

使用str.join建立從元組的字符串。

class_format = (name, "has a score of", Score) 
class_score.write(" ".join(class_format)) 
2

class_format應該是:

class_format = "{} has a score of {}".format(name, Score) 

檢查docs(部分7.1.3.1

+0

謝謝,你知道我怎麼能夠搜索一個用戶(每次運行該程序時輸入相同的名稱)是否有超過3個分數?我猜我可以使用any()函數,但我不太確定。我只想確保如果用戶有3個分數,程序將刪除最老的分數 –