如何用Python生成42组不同的Powerball随机彩票号码?
修正Powerball彩票号码生成器:生成42组不同号码
你的问题核心是打印语句没有放在循环内部,导致循环执行完42次生成操作后,只输出最后一组结果。另外循环范围的设置也让票号从0开始计数,最后显示成了42,不符合你的需求。
下面是修正后的代码,完全匹配你的期望输出:
### LOTTERY NUMBERS GENERATOR ver1.0 import random lottery = input("Do you want to win the lottery? ") if lottery.lower() != 'yes': quit() print("Here are your winning lottery numbers:\n") # 循环范围改成1到43,生成1-42的票号 for ticket_num in range(1, 43): # 生成1-69之间的5个不重复号码,修正原代码的0起始问题 main_numbers = random.sample(range(1, 70), 5) # 生成1-26之间的Powerball号码 pb_number = random.randint(1, 26) # 缩进print语句,每次循环输出一组,格式对齐 print(f" Ticket #{ticket_num} - {main_numbers} and PB {pb_number}") print("\nGOOD LUCK!")
关键改动说明:
- 将输出号码的
print语句缩进,放入for循环内部,确保每生成一组号码就立即打印 - 循环使用
range(1, 43),直接生成1到42的票号,无需额外转换 - 修正
random.sample的范围为range(1,70),符合Powerball主号码1-69的规则 - 使用f-string格式化输出,让代码更简洁易读,同时匹配你期望的缩进和分隔样式
运行这段代码后,会逐行输出42组完全不同的随机号码,正好作为给妻子的生日惊喜。
内容的提问来源于stack exchange,提问作者uglyphile
相关产品推荐
相关产品推荐

