Python 有人能帮我找出这个密码吗? 随机导入 print“欢迎使用数字猜测程序。我们将选择一个介于1和100之间的数字,然后让您选择一个介于1和100之间的数字。如果您的数字与数字相差10个整数,则您将获胜!” rand_num=random.randint(1100) 用户输入=原始输入('输入您的猜测:')。isdigit() 数字=整数(用户输入) 打印号码 如果abs(rand_num-number)

Python 有人能帮我找出这个密码吗? 随机导入 print“欢迎使用数字猜测程序。我们将选择一个介于1和100之间的数字,然后让您选择一个介于1和100之间的数字。如果您的数字与数字相差10个整数,则您将获胜!” rand_num=random.randint(1100) 用户输入=原始输入('输入您的猜测:')。isdigit() 数字=整数(用户输入) 打印号码 如果abs(rand_num-number),python,Python,原始输入返回您输入的字符串作为输入isdigit()检查字符串是否为数字,并返回True或False 在您的代码中,您将isdigit的返回值分配给user\u input,因此,您可以得到True或False。然后将其转换为一个数字,从而得到1或0。这不是你想要的 让user\u input只是raw\u input的结果。然后使用user\u input.isdigit()检查该数字是否有效。如果不是数字,则打印错误消息并退出(或重新请求输入),否则将用户输入转换为整数并继续操作。问题是此语

原始输入
返回您输入的字符串作为输入
isdigit()
检查字符串是否为数字,并返回True或False

在您的代码中,您将
isdigit
的返回值分配给
user\u input
,因此,您可以得到
True
False
。然后将其转换为一个数字,从而得到1或0。这不是你想要的


user\u input
只是
raw\u input
的结果。然后使用
user\u input.isdigit()
检查该数字是否有效。如果不是数字,则打印错误消息并退出(或重新请求输入),否则将
用户输入转换为整数并继续操作。

问题是此语句的乘积:

import random

print "Welcome to the number guesser program. We will pick a number between 1 and 100 and then ask you to pick a number between 1 and 100. If your number is 10 integers away from the number, you win!"

rand_num = random.randint(1, 100)


user_input = raw_input('Put in your guess:').isdigit()
number = int(user_input)

print number

if abs(rand_num - number) <= 10:
    print "Winner"
else:
    print "Loser"
isdigit()的返回值为True或False。当您输入1或任何数字时,它将返回True(True=1,False=0),因此如果您输入数字,您将始终得到1。您可以这样更改:

user_input = raw_input('Put in your guess:').isdigit(). 
请看这一行:
user\u input=raw\u input('输入您的猜测:')。isdigit()

函数
raw\u input
提供用户输入,但随后调用
isdigit
,作为变量
user\u input
的结果,您将得到
isdigit
的结果。所以,它有布尔值

然后在
number=int(用户输入)
将其强制转换为整数类型。在python中,true为1,false为0。这就是为什么你总是得到1

IMHO,
try:int(原始输入(“…”);除此之外:错误消息
将比
更好,否则@Lafexlos,同意。OP似乎非常想使用
isdigit
,但它有问题,所以我展示了如何使用它。

    import random

    print "Welcome to the number guesser program. 
    We will pick a number between      
    1 and 100 and then ask you to pick a number 
    between 1 and 100. If your number is 10 integers
    away from the number, you win!"

    rand_num = random.randint(1, 100)

    user_input= raw_input('Put in your guess:')
    is_digit = user_input.isdigit()
    if is_digit==True:
        number = int(user_input)
        print number
        if abs(rand_num - number) <= 10:
            print "Winner"
        else:
            print "Loser"
    else:
        print 'Your input is not a digit.'