SoaringPluto 2021-05-16 23:19 采纳率: 100%
浏览 600
已采纳

《Python编程:从入门到实践(第2版)》课后题9-15求解

原题描述:

练习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))

敬请鞭挞!

  • 写回答

3条回答 默认 最新

  • 关注
    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
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效