好的,我已经尝试过研究这个话题,但这很令人困惑,我不确定这是否是我想要的。无论如何,我正在观看一个关于python pygame游戏的管教程。我完成了视频,并没有展示如何制作高分的东西,而不仅仅是特定游戏的得分。所以我试着在进入游戏代码并真正做到这一点之前掌握这个概念。所以我希望能够创建该文件,我会运行一次,然后我将删除写代码并保留读取代码。所以我创建了文件,这是我现在的代码。
def highscore():
question=int(input("What is 5+5=?:"))
if question==10:
highread=open('high.txt', 'r')
text=highread.read()
if text==1:
highread.close()
high=open('high.txt', 'w')
high.write('2\n')
high.close()
highread=open('high.txt', 'r')
text=highread.read()
print("Your new score of", text)
highread.close()
highread.close()
else:
print("Wrong!")
highscore()
我很确定该文件现在有“1”。所以我希望现在能够制作一个“2”代表有人击败高分,因此文件需要更新。它不打印新结果,所以我知道有些问题。怎么了?没有错误消息,但它没有做我想要的,也就是打印数字2.我顺便使用python 3.4.3。提前谢谢。
答案 0 :(得分:0)
问题出在你的if条件中。这里text
是字符串变量。如果要查看字符串是否包含特定的子字符串/字符,则应使用find()
返回字符串中的子字符串/字符索引(如果找到),如果未找到则返回负值。
试试这个:
def highscore():
question=int(input("What is 5+5=?:"))
if question==10:
highread=open('high.txt', 'r')
text=highread.read()
if len(text)>0:
highread.close()
high=open('high.txt', 'w')
high.write('2')
high.close()
highread=open('high.txt', 'r')
text=highread.read()
print("Your new score of", text)
highread.close()
highread.close()
else:
print("Wrong!")
随时请求进一步澄清。