运行Python彩票生成验证代码无输出问题求助
彩票生成器代码无输出问题排查
问题根源
你的代码存在三个核心逻辑错误,导致程序直接跳过关键执行流程,无任何输出:
循环条件完全颠倒
初始时my_ticket是空列表,robot_ticket是包含5个元素的列表,robot_ticket == my_ticket结果为False,因此整个循环直接跳过,根本不会执行内部的彩票生成和判断逻辑。判断运算符使用错误
代码中用robot_ticket not in my_ticket和robot_ticket in my_ticket完全错误——in是用来判断单个元素是否存在于列表中,而你需要判断两个列表是否完全相等,应该直接用==。计数初始值不合理
times初始设为-1,会导致最终统计的次数出现偏差,应该从0开始计数。
修正后的代码
from random import choice pack = (1,2,3,4,5,6,7,8,9,10,'a','b','c','d','e') # 生成固定的中奖彩票 winning_ticket = [] while len(winning_ticket) < 5: winning_ticket.append(choice(pack)) my_ticket = [] times = 0 # 循环生成彩票,直到匹配中奖号码 while my_ticket != winning_ticket: my_ticket.clear() # 生成一张新彩票 while len(my_ticket) < 5: my_ticket.append(choice(pack)) times += 1 print(f"总共尝试了 {times} 次才生成中奖彩票")
修正说明
- 把
robot_ticket更名为winning_ticket,语义更清晰 - 调整循环条件为
my_ticket != winning_ticket,确保只要未匹配就持续生成新彩票 - 计数从0开始,每生成一次彩票就加1,结果更准确
- 移除了多余的
continue语句和错误的判断逻辑,流程更简洁
内容的提问来源于stack exchange,提问作者Broil
相关产品推荐
相关产品推荐

