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

《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
    
    评论
    解决 3 无用
    打赏 举报
查看更多回答(2条)

相关推荐 更多相似问题