Python返回不真实的值?

2024-06-02 06:45:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python的新手,我正在用Python开发一个数字猜测游戏。但是,当我设置参数时:

import random
numberchosen = random.randint(0,100)
numberchosenstr = str(numberchosen)
print ("Let's play a number game")
numberguessed = input("Guess a number ")
print ("You guessed " + numberguessed)

if numberguessed > '100':
    print ("You guessed too high, choose a number below 100")

if numberguessed < '0':
    print ("You guessed too low, choose a number above 0")

if numberguessed != numberchosen:
    print ("wrong")

但是,当我运行模块,并选择数字5,例如,或任何数字是在正确的范围内,但不是正确的数字,它总是返回

Let's play a number game
Guess a number 5
You guessed 5
You guessed too high, choose a number below 100
wrong

所以,我的问题是,为什么Python返回>;100错误,有什么方法可以修复它?你知道吗


Tags: yougamenumberplayif数字randomtoo
1条回答
网友
1楼 · 发布于 2024-06-02 06:45:46

您正在比较字符串,这是按字典顺序(即按字母顺序,一次一个字符)进行的。但即使一是int,字符串也总是大于数字。您需要去掉比较号码上的引号,然后在input上调用int(),如下所示:

numberguessed = int(input("Guess a number "))  # convert to int
print ("You guessed {}".format(numberguessed)) # changed this too, since it would error

if numberguessed > 100:  # removed quotes
    print ("You guessed too high, choose a number below 100")

if numberguessed < 0:    # removed quotes
    print ("You guessed too low, choose a number above 0")

相关问题 更多 >