为了尽量减少代码中循环的数量,我可能会首先在字典中弹出随机数。你知道吗
类似这样的事情(可能是更有效的方法…但这是我脑海中突然出现的第一件事):from collections import Counter
d = Counter(random.sample(range(10), 4))
启动while循环,并不断让用户猜测。每次他们猜对了,就执行以下操作:d.pop(correctly_guessed_num)
一旦你的字典是空的,你就完成了,你打破了循环。你知道吗
编辑在实现中添加我的快速插入。没有完全考虑清楚,可能是一些边缘案例打破了这一点…但这是总体思路。希望有帮助。你知道吗from collections import Counter
import random
d = Counter(random.sample(range(1, 10), 4))
size = len(d) - 1
while True:
x = int(input("Guess: "))
if size == 0:
print("you guessed them all, way to go")
break
if x not in d:
print("keep going buddy")
continue
else:
d.pop(x)
size -= 1
print("A right guess")