原题描述:
练习9-14:彩票 创建一个列表或元组,其中包含10个数和5个字母。从这个列表或元组中随机选择4个数或字母,并打印一条消息,指出只要彩票上是这4个数或字母,就中大奖了。
练习9-15:彩票分析 可以使用一个循环来明白前述彩票大奖有多难中奖。为此,创建一个名为my_ticket的列表或元组,再编写一个循环,不断地随机选择数或字母,直到中大奖为止。请打印一条消息,报告执行循环多少次才中了大奖。
个人问题:
已完成练习9-14,练习9-15陷入了无限循环,得不出结果来,求大神帮忙看看代码该如何修改,感谢!!
from random import randint, choice, sample
#练习9-14 &练习9-15
lottery = [1, 22, 43, 46, 55, 68, 72, 38, 99, 10,
'A', 'L', 'G', 'S', 'Q']
my_lottery = choice(lottery)
my_ticket =[]
winning_num = sample(lottery, 4)
while True:
ticket = choice(lottery)
my_ticket.append(ticket)
if my_ticket in winning_num:
print('Congratulations!You got award!')
break
else:
# print("Sorry!You lose!")
continue
print(len(my_ticket))
敬请鞭挞!
from random import randint, choice, sample
#练习9-14 &练习9-15
lottery = [1, 22, 43, 46, 55, 68, 72, 38, 99, 10,
'A', 'L', 'G', 'S', 'Q']
my_lottery = choice(lottery)
winning_num = sample(lottery, 4)
s = 0
while True:
my_ticket = sample(lottery, 4)
if my_ticket == winning_num:
print('Congratulations!You got award!')
print(f'循环{s}次才中了大奖')
break
else:
s += 1
# print("Sorry!You lose!")
continue
9-14 这里的随机取四个,可以考虑使用random的随机打乱序列的方式,然后取前四个,就可以了
9-15 就是遍历所有的可能情况,与已有的列表比较
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632