练习前简略学习一下random包和string包
Random模块
通过import导入,常用有如下几样:
import random
import string
##########################
#random模块
# 从字符串中随机选取一个字符,()内可以是变量
random.choice("abcdefg")
# 从0-100随机一个数字,不包括100
random.randint(0,100)
# 选取范围内的随机项
# start开始值,stop结束值(不被包含),step间隔值(递增基数)
random.randrange ([start],stop,[step])
#从列表"abcdefghijkl"中选取5个元素组成新列表
random.sample("abcdefghijkl",5)
##########################
# string模块
# 顺序返回全部大写的字母A-Z
string.ascii_uppercase
# 顺序返回全部小写字母+大写字母a-z + A-Z
string.ascii_letters
# 顺序返回全部小写字母a-z
string.ascii_lowercase
# 顺序返回数字0-9
string.digits
练习1:车牌摇号
用户抽奖要求:
1. 允许⽤户最多选5次。
2. 每次放出20个⻋牌供⽤户选择。
车牌格式:津[A-Z]-[xxxxx],其中[xxxxx]可以是数字和字⺟在组合
import random
import string
count = 5
while count > 0: # 用户可选择五次
print("还剩 %s 次机会" % count)
list1 = []
for i in range(20): # 每次提供20个号码
n1 = random.choice(string.ascii_uppercase) # 生成第一个随机字母
n2 = "".join(random.sample(string.ascii_uppercase + string.digits, 5)) # 生成后五位数并连成字符串
print(f"津{n1}-{n2}") # 格式打印
list1.append(f"京{n1}-{n2}".strip()) # 去掉首尾空格和回车后加入列表中方便查询
info = input("输入你喜欢的车牌号:").strip() # 获取输入时也要去掉空格和回车
if info in list1:
print("确认车牌号:%s" % info)
exit("祝你好运!")
else:
print("输入信息不合法")
count -= 1
continue
练习2:公司抽奖
抽奖要求:
1、200名员工每名员工最多只能中一次。
2、三等奖50人,二等奖10人,一等奖3人,先抽三等奖,再抽二等奖,再抽一等奖。
import random
number = [1]
for i in range(2,200):
number.append(i)
for i in range(50):
random1 = random.choice(number)
print("%s抽中三等奖。" % random1)
number.remove(random1)
for i in range(10):
random1 = random.choice(number)
print("%s抽中二等奖。" % random1)
number.remove(random1)
for i in range(3):
random1 = random.choice(number)
print("%s抽中一等奖。" % random1)
number.remove(random1)