练习9-15:彩票分析
创建一个列表,其中包含10个数和5个字母,从这个列表随机选择4个数或字母,并打印一条消息,指出只要彩票上是这4个数或字母,就中大奖了。
可以使用一个循环来明白前述彩票大奖有多难中奖。为此,创建一个名为 my_ticket 的列表,再编写一个循环,不断地随机选择数或字母,直到中大奖为止。请打印一条消息,报告执行循环多少次才中了大奖。
注:此代码共29行;如果彩票中奖号码中允许有相同的数或字母,只需删除这些代码中前两个 if 语句单行,将下面对齐也可使用。
from random import choice list1 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'a', 'b', 'c', 'd', 'e'] my_ticket = [] while len(my_ticket) < 4: number1 = choice(list1) if number1 not in my_ticket: my_ticket.append(number1) print(f"彩票中奖号码:{my_ticket}") num2 = 0 while True: list2 = [] ticket = my_ticket[:] num2 += 1 num3 = 4 while len(list2) < 4: number2 = choice(list1) if number2 not in list2: list2.append(number2) num4 = 0 while num4 < num3: if ticket[num4] != number2: num4 += 1 else: del ticket[num4] num3 -= 1 break if ticket == []: print(f"第{num2}次循环结果:{list2},中奖了!") break #下面两行可省略 else: print(f"第{num2}次循环结果:{list2},未中奖!")