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

《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条)

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 MATLAB动图问题
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名