python中的while循环和集合
我正在编写一个函数,从预定义列表中获取用户的python中的while循环和集合,python,loops,set,Python,Loops,Set,我正在编写一个函数,从预定义列表中获取用户的int输入,并将其添加到集合中。在将所有(11)项添加到集合中之前,代码工作得非常好。它一直在继续。是因为集合错误还是我的代码有逻辑错误 def append_guess(n): list_of_numbers = [1, 11, 7, 8, 12, 6, 15, 30, 5, 3, 2] guessed = set() while (n): try: n = int(input("E
int
输入,并将其添加到集合中。在将所有(11)项添加到集合中之前,代码工作得非常好。它一直在继续。是因为集合错误还是我的代码有逻辑错误
def append_guess(n):
list_of_numbers = [1, 11, 7, 8, 12, 6, 15, 30, 5, 3, 2]
guessed = set()
while (n):
try:
n = int(input("Enter an integer between 1-30 >> "))
if n in list_of_numbers:
print("right guess")
guessed.add(n)
print(guessed)
else:
print("Wrong Guess - Keep Trying!! ")
except:
if guessed == set(1, 2, 3, 5, 6, 7, 8, 11, 12, 15, 30):
print("Great Job! You have Guessed All numbers")
break
append_guess(1)
您可以将while循环条件更改为
len(猜测)
,以便在猜测并添加到集合中的list\u数字时,while循环终止
代码块
def guessing_game():
list_of_numbers = [1, 11, 7, 8, 12, 6, 15, 30, 5, 3, 2]
guessed = set()
while len(guessed) < len(list_of_numbers):
n = int(input("Enter an integer between 1-30 >> "))
if n in list_of_numbers:
print(f"You guessed {n} which is correct")
guessed.add(n)
else:
print("Wrong guess keep trying")
print("You completed the game")
guessing_game()
def猜测游戏():
数字列表=[1,11,7,8,12,6,15,30,5,3,2]
猜测=集合()
而len(猜测)>”之间的整数)
如果n在\u编号列表中:
打印(f“您猜到了{n}哪一个是正确的”)
猜测。添加(n)
其他:
打印(“猜错,继续尝试”)
打印(“你完成了游戏”)
猜谜游戏
使用此代码块,您不需要try Exception,因为一旦猜到所有数字,代码将正确退出您使用的try
和Exception
。它们一般不应用于常规程序逻辑。它们仅用于处理异常。此外,您不需要同时包含相同数字的列表和集合来进行正确的猜测
相反,将检查作为while循环的条件。所以可能是这样的:
correct_set = {1, 2, 3, 5, 6, 7, 8, 11, 12, 15, 30}
guessed = set()
while guessed != correct_set:
n = int(input("Enter an integer between 1-30 >> "))
if n in correct_set:
print("right guess")
guessed.add(n)
print(guessed)
else:
print("Wrong Guess - Keep Trying!! ")
print("Great Job! You have Guessed All numbers")
def append_guess(guess, correct_set, guessed):
if guess in correct_set:
print("right guess")
guessed.add(guess)
print(guessed)
else:
print("Wrong Guess - Keep Trying!! ")
return guessed
if __name__ == "__main__":
correct_set = {1, 2, 3, 5, 6, 7, 8, 11, 12, 15, 30}
guessed = set()
while guessed != correct_set:
guess = int(input("Enter an integer between 1-30 >> "))
guessed = append_guess(guess, correct_set, guessed)
print("Great Job! You have Guessed All numbers")
我不确定函数的用途是什么,但如果要将其分解为函数,可以将输入和检查逻辑分开,如下所示。我也会考虑用一个更好的名字来称呼“n”,也许叫“猜测”?比如说:
correct_set = {1, 2, 3, 5, 6, 7, 8, 11, 12, 15, 30}
guessed = set()
while guessed != correct_set:
n = int(input("Enter an integer between 1-30 >> "))
if n in correct_set:
print("right guess")
guessed.add(n)
print(guessed)
else:
print("Wrong Guess - Keep Trying!! ")
print("Great Job! You have Guessed All numbers")
def append_guess(guess, correct_set, guessed):
if guess in correct_set:
print("right guess")
guessed.add(guess)
print(guessed)
else:
print("Wrong Guess - Keep Trying!! ")
return guessed
if __name__ == "__main__":
correct_set = {1, 2, 3, 5, 6, 7, 8, 11, 12, 15, 30}
guessed = set()
while guessed != correct_set:
guess = int(input("Enter an integer between 1-30 >> "))
guessed = append_guess(guess, correct_set, guessed)
print("Great Job! You have Guessed All numbers")
这一切都很好
def append_guess():
append_guess()我尝试过,但没有成功。一般来说,我还是python和编程的初学者。是否有可能与您之前的建议共享功能代码块?我已经更新了我的答案,添加了一个功能代码块谢谢您的巨大贡献和灵感!没有什么会导致异常。