例:随机密码生成,编写程序,在26个字母大小写和9个数字组成的列表中随机生成10个8位密码
import random
def printpassword():
print("您随机生成的10个密码为:")
for i in range(0, 10):#遍历10次,实现"生成10个密码的要求"
nums1, nums2, nums3 = [], [], []#定义3个序列
for i in range(97, 123):#用ACSⅡ码生成26个小写字母
nums1.append(chr(i))
for i in range(65, 91):#用ACSⅡ码生成26个大写字母
nums2.append(chr(i))
for i in range(49, 58):#用ACSⅡ码生成9个数字
nums3.append(chr(i))
nums1.extend(nums2)#在nums1序列尾部加入26个大写字母
nums1.extend(nums3)#在nums1序列尾部加入9个数字
originpassword = random.sample(nums1, 8)#用random()函数在nums1序列中随机生成8个字符的密码
for item in originpassword:
print(item, end = "")#打印每串密码
print(",它们是由{}组成的".format(originpassword))#使用format()对originpassword进行格式化处理
printpassword()
例:重复元素判定,编写一个函数,接受列表作为参数,如果一个元素在列表中出现了不止一次,则返回True,但不要改变原来列表的值
def judge(num):
num = eval(input("请输入一个列表"))#接受一个列表,用eval()对Python表达式的方式解析并执行字符串
newnum = []#定义一个新列表
for item in num:#遍历num序列中的所有元素
if item not in newnum:#如果一个元素不在newnum中,那么它将成为newnum中的新元素
newnum.append(item)
if len(num) != len(newnum):#比较num序列和newnum序列的长度
print("True! 您输入的列表中有元素不止出现了一次")#如果一个元素在列表中出现了不止一次,则返回True
else:
print("False! 您输入的列表中没有重复元素")#否则返回False
judge(num)
例:采用集合的无重复性改编任务2的程序,获得一个更快更简洁的版本
def judge(num):
num = eval(input("请输入一个列表"))#接受一个列表,用eval()对Python表达式的方式解析并执行字符串
if len(num) != len(set(num)):#采用集合的无重复性对原列表去重,从而比较长度
print("True! 您输入的列表中有元素不止出现了一次")#如果一个元素在列表中出现了不止一次,则返回True
else:
print("False! 您输入的列表中没有重复元素")#否则返回False
judge(num)
例题来自《Python语言程序设计基础(第二版)》崇天等 著——第六章程序练习题
关于文章内容若有疑问,批评指正的建议或优化方法,欢迎私信或在文章下方回帖
专栏将会有间断更新,欢迎关注,和七月一起进步,今天七月在本专栏第二次打卡啦
创建这个专栏的初衷和目的:
1.关于代码段的不足之处合理采纳大家的建议,督促自己的学习及反思
2.和初学Python的小白们交流讨论学习路上的困惑与学习的tips,和大家共同进步
文末给大家推荐一个python快速上手的好办法:找个项目从头到位复现一遍,相信你在这个过程中会有更多的思考,加深对python语法的理解~