我想试验!=而不是= here(通过切换if
和else
语句),以防我想添加elif:after(如果输入可能是测试响应)猜测大于最大值)。
我不明白为什么它现在发出警告/错误,或者警告意味着什么。
为了澄清,代码运行并且似乎有效,但我在repl.it中收到警告我正在使用写/运行。
第3行def make_guess
它说 - Redefining name 'guess' from outer scope (line 21)
< =这是什么意思?
然后在第21行max=int(input("Guess number between 1 and what?"))
它说Redefining built-in 'max'
[虽然我猜这不是问题所在,因为如果我重命名该变量maxi
它就不会显示第21行的警告]
原始代码:
import random
def make_guess(guess):
if guess == randomnumber:
print()
print("Congratulations, you guessed my number!")
else:
guess = int(input("Guess again?"))
make_guess(guess)
print("GUESS MY NUMBER")
print()
max = int(input("Guess number between 1 and what?"))
randomnumber = random.randint(1, max)
guess = int(input("What is your best guess?"))
make_guess(guess)
print("My number was", randomnumber)
新代码:
import random
def make_guess(guess):
if randomnumber != guess:
guess = int(input("Guess again?"))
make_guess(guess)
else:
print()
print("Congratulations, you guessed my number!")
print("GUESS MY NUMBER")
print()
max = int(input("Guess number between 1 and what?"))
randomnumber = random.randint(1, max)
guess = int(input("What is your best guess?"))
make_guess(guess)
print("My number was", randomnumber)
答案 0 :(得分:0)
我的IDE(在这种情况下是repl.it)发出了这个特别的警告。
它让我知道我在一个不同的范围内(即在函数内)重用/重新定义变量(在这种情况下为guess
)并且这可能是一个问题。
第二个警告是因为我使用max
作为变量名,max
在python中有其他用途,主要是与列表和其他迭代使用的max
Built-in Function 。如果您确实想要使用内置函数,则重新定义max
也可能是一个问题。在这种情况下它不是,但IDE有助于警告你,因为这不是一个明智的做法。
答案 1 :(得分:0)
我将您的代码复制并粘贴到了repl中,它似乎运行得很好。也许设置有误,或者运行时不小心按了一个字母。一个小写字母或一个小写字母可能会弄乱您的工作页面。