京牌摇号
要求:(1)京+1位大写字母+5位大写字母或数字 (2)每次输出20个(3)可以刷新3次,每次可选一个
根据要求可以想到需要用到循环嵌套,我选择使用for循环,还需要使用到string的模块输出随机数。
代码如下
import string
import random
first_num = string.ascii_uppercase
other_num = string.ascii_uppercase + string.digits
choice = "无"
for a in range(3):
for b in range(20):
card = "京" + random.choice(first_num)
for c in range(5):
card += random.choice(other_num)
print(card+" ")
print(f"您的选号为:{choice}")
choice = input("请输入您选择的车牌号")
print(f"1.确认选号,不在刷新\n2.刷新(剩余的刷新次数{3-a}/3)")
choose = input()
if choose == "1":
print(f"选号成功,您的车牌号为:{choice}")
break
elif choose == "2":
continue
else:
print("输入错误")
运行结果
京PAOIMM
京XYCZJD
京VRHRVG
京FY183P
京ISSJG9
京XJJ7VJ
京UNWPKV
京E9AVSI
京N5SFGI
京Q25M39
京I7K9BK
京FTDWY7
京G6TZ3U
京TFGRGD
京D1Z45R
京L6713D
京DW6K7O
京QV3LFV
京KEOHBR
京GJ98FW
您的选号为:无
请输入您选择的车牌号京KEOHBR
1.确认选号,不在刷新
2.刷新(剩余的刷新次数3/3)
2
京H3JZAW
京EF56FD
京MA0F02
京RLPCEM
京YFR0BO
京CSP1H8
京OPJOD4
京T7W9TO
京LRXCXK
京O2HHHS
京UJ1H26
京C6WT0Y
京Z2TEA0
京COEYHZ
京E46ESN
京AFGQWM
京PLY8TW
京KL9APZ
京PDDIN8
京U0TLSO
您的选号为:京KEOHBR
请输入您选择的车牌号京PDDIN8
1.确认选号,不在刷新
2.刷新(剩余的刷新次数2/3)
1
选号成功,您的车牌号为:京PDDIN8
进程已结束,退出代码0
公司年会抽奖
要求:一等奖 3名,二等奖 6名,三等奖 30名,一共300个。300名员工,每人抽3次。第一次抽三等奖,第二次抽二等奖,第三次抽一等奖。每名员工限中奖一次,不可重复。
代码如下
import random
prize_one = ""
prize_two = ""
prize_three = ""
n = 1
for i in range(1, 31):
prize_three = prize_three + str(random.choice(range(1, 301))) + " "
while n < 8:
num = str(random.choice(range(1, 301)))
if prize_three.find(num) == -1:
prize_two = prize_two + num + " "
n += 1
n = 1
while n < 4:
num = str(random.choice(range(1, 301)))
if (prize_three.find(num) == -1) and (prize_two.find(num) == -1):
prize_one = prize_one + num + " "
n += 1
print(f"一等奖的员工编号{prize_one}\n二等奖的员工编号{prize_two}\n三等奖的员工编号{prize_three}")
运行结果
一等奖的员工编号227 245 67
二等奖的员工编号300 135 141 278 146 275 289
三等奖的员工编号121 279 154 169 95 39 11 106 9 138 244 97 107 76 134 299 255 149 250 199 104 254 235 248 32 194 23 104 2 145
进程已结束,退出代码0
该案例使用了一些string模块,以下是我记的一些笔记。
s1 = "Hello World"
print(s1.upper())
print(s1.lower())
print(s1.startswith("He"))
print(s1.endswith("He"))
s2 = input("input a digit")
print(s2.isdigit())
s3 = input("input name")
print(s3, len(s3))
s3 = s3.strip()
print(s3, len(s3))
s4 = "1 2 3 4 5"
ret = s4.split(" ")
print(ret, len(ret))
ret2 = ":".join(ret)
print(ret2, len(ret2))
s5 = "1234567"
print(s5.find("4"), type(s5.find("4")))
s5 = "1234567"
print(s5.index("1"))
s6 = "1234141414"
print(s6.count("1"))
s7 = "i have dream"
print(s7.replace("have dream", "am a student"))
运行结果
HELLO WORLD
hello world
True
False
input a digit12
True
input namename
name 4
name 4
['1', '2', '3', '4', '5'] 5
1:2:3:4:5 9
3 <class 'int'>
0
4
i am a student
总结
这两个案例,是为了巩固string模块的使用。其中年会抽奖这个案例整理思路用了很久,如果各位大佬有更好的思路欢迎指教。