比较python中两个变量的值
无论我输入的数字是否正确,它都会返回“重试”。我怎样才能纠正这个问题比较python中两个变量的值,python,python-3.x,variables,python-requests,Python,Python 3.x,Variables,Python Requests,无论我输入的数字是否正确,它都会返回“重试”。我怎样才能纠正这个问题 import random from random import randint num = randint(1000, 9999) print (num) while True: guess = input ("Please guess a four digit number. ") print (guess) if guess == num: print ("Well Done!") els
import random
from random import randint
num = randint(1000, 9999)
print (num)
while True:
guess = input ("Please guess a four digit number. ")
print (guess)
if guess == num:
print ("Well Done!")
else:
print ("Try again")
您的
num
是一个int,而输入的猜测是一个字符串,因此它们永远不能相等。如果你想比较它们,你应该确保它们都来自同一类型
例如,仅使用字符串:
num = str(randint(1000, 9999))
或者将用户的猜测转换为整数:
guess = int(input("Please guess a four digit number. "))
您的
num
是一个int,而输入的猜测是一个字符串,因此它们永远不能相等。如果你想比较它们,你应该确保它们都来自同一类型
例如,仅使用字符串:
num = str(randint(1000, 9999))
或者将用户的猜测转换为整数:
guess = int(input("Please guess a four digit number. "))
您没有将用户输入转换为整数。您正在比较整数和字符串
from random import randint as rn
while 1:
print ('Well Done!' if int(input('Please guess a four digit number. ')) is rn(1000, 9999) else 'Try again')
您没有将用户输入转换为整数。您正在比较整数和字符串
from random import randint as rn
while 1:
print ('Well Done!' if int(input('Please guess a four digit number. ')) is rn(1000, 9999) else 'Try again')
Mureinik关于字符串不能与整数进行比较这一事实是正确的,但我想澄清一下,如果函数不接收数字,int()可能会在您身上爆炸(打个比方) 要解决此问题,请将while循环的内容放入try语句中:
import random
num = random.randint(1000, 9999)
print (num)
while True:
try:
guess = input("Please guess a four digit number.")
print(guess)
if int(guess) == num:
print ("Well Done!")
else:
print ("Try again")
except ValueError:
print ("Input is not an integer. Redo!")
Mureinik关于字符串不能与整数进行比较这一事实是正确的,但我想澄清一下,如果函数不接收数字,int()可能会在您身上爆炸(打个比方) 要解决此问题,请将while循环的内容放入try语句中:
import random
num = random.randint(1000, 9999)
print (num)
while True:
try:
guess = input("Please guess a four digit number.")
print(guess)
if int(guess) == num:
print ("Well Done!")
else:
print ("Try again")
except ValueError:
print ("Input is not an integer. Redo!")
不要使用bare except子句。Thx,我试试看。不要使用bare except子句。Thx,我试试看。