【发布时间】:2019-12-25 12:47:57
【问题描述】:
我正在尝试创建一个游戏,其中用户想象一个从 1 到 20 的数字,然后计算机尝试猜测它。 以此目的: 1. 我创建了一个从 1 到 20 的所有数字的列表。 2. 程序从列表中选择一个随机数并询问该虚数是小于还是大于随机数。 3. 用户回答“j”或“n” 4. 每次猜测后,列表从冗余数字中切片 5. 最终,列表中应该只有一个数字,计算机应该得出正确的数字。 代码:
import random
d = list(range(1,21))
tries = []
while True:
if len(d) > 1:
x = random.choice(d)
tries.append(1)
print(f"Is your number bigger than {x}?")
answer = input()
if answer == 'j':
del d[:x]
print(d)
if answer == 'n':
del d[x:]
print(d)
tries.append(1)
x = random.choice(d)
print(f"Is your number smaller than {x}?")
answer = input()
if answer == 'j':
del d[x-1:]
print(d)
if answer == 'n':
del d[:x-1]
print(d)
else:
print(f"Your number is {d[0]}. You guessed with {len(tries)} attempts.")
break
但是,奇怪的是切片不能正常工作,我多次遇到这样的结果: Output
如您所见,在我确认我的号码小于 9 后,它不会删除 9-13 的号码
【问题讨论】: