我在游戏中有一些代码,它将用户数据存储在名为data.txt
的文本文件中。以下代码是当一个人继续时,它将读取存储关卡的部分并查看它将在何处开始游戏:
elif choice==("2"):
contusername = input("Enter the name you registered with")
with open("data.txt") as f:
f.readline()
for lines in f:
name, level = lines.split()
if name == contusername:
userdata = level
break
while True:
if level == 1:
level1()
elif level == 2:
level2()
#and so on
但它不起作用。 Python无法读取文本文件。我该如何解决这个问题?
答案 0 :(得分:1)
你可能忘了转换为int:
userdata = int(level)
其他方式,您的userdata
是'1\n'
此外,您希望比较使用此userdata
,而不是level
while True:
if userdata == 1:
level1()
P.S。我不知道这个while True:
语句是否正确,因为只提供了一个代码摘录,但它对我来说也是可疑的。
答案 1 :(得分:0)
您似乎遇到了类型问题。从文件中读取将为您提供一个字符串,但您正在检查整数。
尝试将级别编号强制为int
。
elif choice==("2"):
contusername = input("Enter the name you registered with")
with open("data.txt") as f:
f.readline()
for lines in f:
name, level = lines.split()
if name == contusername:
userdata = level
break
level = int(level) # <-- force the level to an integer
while True:
if level == 1:
level1()
elif level == 2:
level2()
答案 2 :(得分:0)
这应该有效:
elif choice == "2":
contusername = raw_input("Enter the name you registered with")
with open("data.txt") as f:
for lines in f.readlines():
name, level = lines.split()
if name == contusername:
userdata = int(level)
break
while True:
if userdata == 1:
level1()
elif userdata == 2:
level2()