考察点:
1.字符串的常用函数,可参考:Python 字符串 | 菜鸟教程 (runoob.com)
2.在判断是否有指定特殊字符时,使用列表推导式,不存在列表[]为空
推导表达式:
[表达式 for 迭代变量 in 可迭代对象 [if 条件表达式] ]
import random
mystr = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@#$%_"
while True:
codetemp=''.join(random.sample(mystr,4))
spstr='@#$%_'
print(codetemp)
#难点:用推导式判断是否有特殊字符,如果有,列表为[0],没有则为[]
if [a.find(b) for a in codetemp for b in spstr if a.find(b)!=-1] \
and any(a.isdigit() for a in codetemp) \
and any(a.islower() for a in codetemp) \
and any(a.isupper() for a in codetemp):
print(codetemp)
break