我的任务是在电脑上玩游戏。我应该“想到一个数字”,计算机必须猜出来。万一正确猜对了,我应该说C并退出循环。如果是一个较小的数字,我应该说L,并且计算机应该尝试生成一个较小的数字。H代表更高,是相反的情况。到目前为止,我已经成功地实现了所有功能,只有一个例外。使用下面的代码,例如,如果我告诉计算机L,它将不会超过最后一个数字的限制,但是,如果我再说H,它将再次随机生成数字。请记住,这是针对初学者的任务(尚未涵盖功能)。我们必须使用循环。对于函数getInteger和getLetter,请不要注意,
这是代码:
from pcinput import getLetter, getInteger
from random import random, randint, seed
mynum = getInteger("My number is:")
comnum = randint(0, 1000)
print("Is your number:", comnum, "?")
while True:
answer = getLetter("That is: ")
if answer == "C":
print("Congratulations!")
break
if answer == "L":
comnum = randint(0,comnum)
print("Is your number:", comnum, "?")
possibility = range(comnum, )
continue
elif answer == "H":
comnum = randint(comnum, 1000)
print("Is your number:", comnum, "?")
continue
* comnum是计算机应输入的字母
我的问题基本上是如何修复此代码,以便计算机在第一个和最后一个猜测之间创建某种范围,并且不超过或低于该范围,从而缩短每次猜测之间的间隔。(我希望你明白我的意思)。
非常感谢!
我的方法是(从您的代码开始):
from random import random, randint, seed
mynum = int(input("My number is: "))
maximum = 1000
minimum = 0
while True:
comnum = randint(minimum, maximum)
print("Is your number:", comnum, "?")
answer = input("That is ")
if answer == "C":
print("Congratulations!")
break
if answer == "L":
maximum = comnum - 1
continue
elif answer == "H":
minimum = comnum + 1
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句