我对python有点陌生,我给了自己一个任务,我想要一个猜数字的游戏,让你猜四个数字,程序会一直告诉你你猜对了多少数字,直到你猜到完整的数字列表。你知道吗
running = True
import random
def compareLists(a, b):
return list(set(a) & set(b))
def start():
rNums = random.sample(range(10), 4)
gNums = []
print("Get ready to guess 4 numbers!")
for i in range(0, 4):
x = int(input("Guess: "))
gNums.append(x)
print("You guessed: ", gNums)
comparison = len(compareLists(rNums, gNums))
while gNums and rNums:
if gNums != rNums:
print("You guessed " + str(comparison) + " numbers right, keep guessing!")
break
elif gNums == rNums:
print("What amazing luck!")
while running:
start()
问题是,当我使用break时,会创建一个由4个数字组成的新列表,我希望python返回到循环的开头,而不是创建一个全新的列表!你知道吗
您想使用
continue
。以玩具为例:输出:
为了尽量减少代码中循环的数量,我可能会首先在字典中弹出随机数。你知道吗
类似这样的事情(可能是更有效的方法…但这是我脑海中突然出现的第一件事):
启动while循环,并不断让用户猜测。每次他们猜对了,就执行以下操作:
一旦你的字典是空的,你就完成了,你打破了循环。你知道吗
编辑在实现中添加我的快速插入。没有完全考虑清楚,可能是一些边缘案例打破了这一点…但这是总体思路。希望有帮助。你知道吗
你可以把
在环路外通过rNums启动。这样,列表中的四个数字就相同了。希望这有帮助
相关问题 更多 >
编程相关推荐