无法弄清楚Python 3.7 NameError

问题描述

大家! 因此,我尝试编写一个简单的猜谜游戏,但是我一直遇到相同的错误“未定义名称'upperBound'”,并且不知道如何解决它。我还将附上错误的屏幕截图。

import math

lowerNum = int(input("Enter lower point: "))
upperNum = int(input("Enter upper point: "))

guesses = round(math.log(upperBound))

print("Number of guesses: ",guesses)

response = ""
count = 0

while response != "y" and count < guesses:
    compGuess = round((lowerBound + upperBound)/2)
    print ("Is your number: ",compGuess)
    count += 1
    response = input("either h if too high,l if too low,y if it's correct: ")
    if response == 'h':
        upperBound = compGuess
    elif response == 'l':
        lowerBound = compGuess
    elif response == 'y':
        print ("The computer guessed your answer in",count,"guesses.")
    else:
        print ("Invalid input",end= '--')
        count -= 1
    compGuess = round((lowerBound + upperBound) /2)
if guesses <= 0:
    print("Computer has used up all the guesses : (")
else:
    pass

error screenshoot

解决方法

第3行定义:

upperNum = int(input("Enter upper point: "))

第6行使用upperBound

guesses = round(math.log(upperBound))
,

如果您定义upperBound,您的代码将可以正常工作,就像错误消息经过分析得出的结论一样,例如:

upperBound = 100

使用前必须先定义它。

对其他未定义的变量(例如lowerBound)执行相同的操作。

是否可以在此处定义它们?

lowerNum = int(input("Enter lower point: "))
upperNum = int(input("Enter upper point: "))

,您错过了变量名称吗?我想你打算写:

lowerBound = int(input("Enter lower point: "))
upperBound = int(input("Enter upper point: "))