我目前有一个代码,用于让计算机猜出我脑海中的数字。我一直收到错误,因为我在一行中多次使用变量。
import random
N = int(input())
Low = 0
High = N
p=False
guess = random.randint(Low, High)
print(guess)
def get_response():
response = input()
global p
if response == 'l':
high = guess - 1
guess = random.randint(Low, high)
print(guess)
elif response == 'h':
low = guess + 1
guess = random.randint(low, High)
print(guess)
elif response == 'c':
print("He got it")
p=True
我怎么能解决这个问题,怎么能循环呢? 提前谢谢!
答案 0 :(得分:0)
你没有调用它什么都不做的功能
p剂量不需要是全局的,因为没有局部影子
p也看起来像是一个停止迭代的标志,但这不是一个中断
语句可以停止一段时间(True)
没有usedrandomnumber,因此没有UnboundLocalError
print('think of a integer in the range [0,100]')
low, high = 0, 100
while(True):
guess = (low + high)//2 # // int div
cmd = input('is it %d [Yes(y), higher(h), lower(l)]\n>>> ' % guess)
if cmd[0].lower()=='y':
break
elif cmd[0].lower()=='l':
high = guess - 1
elif cmd[0].lower()=='h':
low = guess + 1
else:
print('please answer with "y", "h", or "l" ')
print("I win! your number is %d"%guess)
总之,你需要一个循环来寻找数字
打印以提供说明
输入从用户获取命令 cmd [0]将获得命令的第一个字母以区分它们 .lower()将小写的命令不区分大小写