Python组合数据类型 实例示例

例:随机密码生成,编写程序,在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语法的理解~

你可能感兴趣的:(七月的python学习,python)