Python猜数程序问题:提交匹配随机数未被识别,求解决方案
问题分析与解决
问题根源:你的第二个
for循环逻辑出错了。当前代码里,只要第一个猜测的数字和随机数不匹配,就会立刻执行else块的失败提示,然后break终止循环——剩下的9个猜测根本没机会被检查。就算后面的猜测里有正确的,程序也不会发现。修正方案:把失败提示的逻辑移到循环结束之后,只有当所有猜测都遍历完且没有匹配项时,才输出失败信息。这里提供两种实现方式:
方式一:用标志变量记录结果
import random number = random.randint(1,20) guesses = [] for i in range (1,11): guesses.append(int(input("Submit number {} : ".format(i)))) # 初始化标志位,标记是否猜中 found = False for guess in guesses: if guess == number: print("Bingo!") print("The random number was: ", number) found = True break # 循环结束后判断是否找到正确数字 if not found: print("Sorry, no bingo today...") print("The random number was: ", number)
方式二:利用Python的for-else特性(更简洁)
Python里for循环的else块会在**循环正常结束(没有被break打断)**时执行,刚好适合这个场景:
import random number = random.randint(1,20) guesses = [] for i in range (1,11): guesses.append(int(input("Submit number {} : ".format(i)))) for guess in guesses: if guess == number: print("Bingo!") print("The random number was: ", number) break else: # 只有所有猜测都不对时才执行这里 print("Sorry, no bingo today...") print("The random number was: ", number)
内容的提问来源于stack exchange,提问作者Marcus Johansson
相关产品推荐
相关产品推荐

