赞
踩
题目内容:这两题需要大家从10个数和5个字母中取出4位作为中奖号码,再执行一个循环,得出循环多少次才能中奖。
题目看起来平平无奇,可问题是前面书中只讲了random库中的choice()
和 randint()
函数,如果用现有知识做肯定需要判定取出数字位数,以及是否取出了重复的值,非常麻烦。
不过如果先知难而退做了9-16,其实可以random库的介绍中发现还有个sample()
函数,它直接能随机返回一组不重复的值 (generates samples without repeating values and without modifying the input sequence),这个时候咱再回头看9-14、9-15就巴适得很。
"""4位数彩票""" from random import sample numbers_15 = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 'a', 'b', 'c', 'd', 'e' ] luck_number = sample(numbers_15, 4) #随机从numbers_15返回含有4个值的list your_ticket = sample(numbers_15, 4) n = 0 #循环次数 while luck_number != your_ticket: n += 1 your_ticket = sample(numbers_15, 4) print(f"You buy {n} ticket to win the lottery") print(f"Your luck number is {your_ticket}")
运行结果:
You buy 38431 ticket to win the lottery
Your luck number is [9, 10, 2, 'e']
当然出题者应该更希望我们通过choice()
函数完成题目来锻炼编程逻辑,所以关于正道的光推荐大家参考这位大神的作业。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。