2016-04-27 85 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个分数,程序将删除最老的分数 –