所以我正在制作一个简单的随机数字游戏,即使程序关闭并再次运行,我也想保存玩家的高分。我希望计算机能够向玩家询问他们的名字,在文本文件中搜索名称数据库,并提高他们的高分。然后,如果它们的名称不存在,请在数据库中创建一个名称。我不确定如何做到这一点。我是一个菜鸟程序员,这是我的第二个程序。任何帮助将不胜感激。
以下是随机数游戏的代码:
import random
import time
def getscore():
score = 0
return score
print(score)
def main(score):
number = random.randrange(1,5+1)
print("Your score is %s") %(score)
print("Please enter a number between 1 and 5")
user_number = int(raw_input(""))
if user_number == number:
print("Congrats!")
time.sleep(1)
print("Your number was %d, the computers number was also %d!") %(user_number,number)
score = score + 10
main(score)
elif user_number != number:
print("Sorry")
time.sleep(1)
print("Your number was %d, but the computers was %d.") %(user_number, number)
time.sleep(2)
print("Your total score was %d") %(score)
time.sleep(2)
getscore()
score = getscore()
main(score)
main(score)
编辑: 我正在尝试这个并且它似乎正在工作,除了当我尝试用变量替换字符串时,它会出错:
def writehs():
name = raw_input("Please enter your name")
a = open('scores.txt', 'w')
a.write(name: 05)
a.close()
def readhs():
f = open("test.txt", "r")
writehs()
readhs()
答案 0 :(得分:2)
with open('out.txt', 'w') as output:
output.write(getscore())
使用这样的with
是处理文件的首选方法,因为它会自动处理文件关闭,即使是异常也是如此。
此外,请记住修复您的getscore()
方法,使其不会始终返回0.如果您希望得分print
,请将print
语句放在return
之前{1}}。
答案 1 :(得分:1)
要使用python编写文件,请执行以下操作:
file2write=open("filename",'w')
file2write.write("here goes the data")
file2write.close()
如果您想阅读或附加文件,只需更改' w'为了' r'或者' a'分别
答案 2 :(得分:0)
首先,你应该清楚地问你的问题以便其他人理解。要在文本文件中添加文本,你总是可以使用open
内置函数。就像这样。
>>> a = open('test.txt', 'w')
>>> a.write('theunixdisaster\t 05')
>>> a.close()
多数民众赞成。如需进一步帮助,请尝试本网站。 http://www.afterhoursprogramming.com/tutorial/Python/Writing-to-Files/
您还可以使用for循环来打印所有分数。 自己尝试这个。它宁愿很有趣。
推荐的方式
好像推荐的方式一样使用它:
>>> with open('test.txt', 'w') as a:
a.write('theunixdisaster\t 05')
确定该文件将关闭。
使用变量
>>> name = sempron
>>> with open('test.txt', 'w') as a:
a.write('%s: 05' % name)
现在尝试调用它。我使用python 3.4.2
。所以,如果你遇到错误,请尝试检查字符串格式与你使用的python版本是否有任何区别。