我正在尝试创建一个猜谜游戏,在该游戏中,我有一个获取随机值的变量,然后是需要输入数字的while循环。这应该一直进行到我得到与随机生成的值相同的值,然后打印出包含我键入的所有数字的列表。由于某种原因,即使我得到相同的数字,循环也会不断进行。>
到目前为止,这是我的代码:
import random
x = random.randint(1,10)
y = []
lst = []
while y != x:
y = input('Your number:')
lst.append(y)
pass
print(lst)
谢谢!
答案 0 :(得分:2)
问题是:input()
返回一个字符串,因此您必须将其结果转换为整数。函数random.randint(1,10)
返回一个整数,因此如果不将input()
函数结果转换为整数,条件y != x
始终为True。
import random
x = random.randint(1,10)
y = None
lst = []
while y != x:
y = int(input('Your number:'))
lst.append(y)
print(lst)
答案 1 :(得分:1)
您需要先将x
变量转换为字符串,然后再将其与While循环中的y
变量进行比较。
这有效:(仅将str()
转换添加到x
变量中。)
import random
x = str(random.randint(1,10))
y = []
lst = []
while y != x:
y = input('Your number:')
lst.append(y)
pass
print(lst)
答案 2 :(得分:0)
在您的代码中,x是整数,而y是字符串。您需要将用户的输入(是y)转换为int。只需对代码执行以下操作即可:
import random
x = random.randint(1,10)
y = []
lst = []
while y != x:
y = int(input('Your number:'))
lst.append(y)
pass
print(lst)
答案 3 :(得分:0)
首先,您正在比较type:int和type:str。 “ ==”将始终为假。这是我如何执行您的程序
import random
x = random.randint(1,10)
y = []
lst = []
while True:
y = int(input('Your number:'))
print(x)
print(y)
if(x==y):
break
else :
lst.append(y)
print(lst)