Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
比较python中两个变量的值_Python_Python 3.x_Variables_Python Requests - Fatal编程技术网

比较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,我试试看。