Python组合数据类型 实例示例

本文介绍了两个Python编程示例,包括使用ASCII码生成随机密码和检查列表中重复元素的方法。第一个示例展示了如何利用random库生成包含大小写字母和数字的8位密码。第二个示例通过比较列表和集合的长度来判断列表内是否存在重复元素,提供了两种不同的实现方式,包括使用额外列表和直接使用集合操作。这些例子有助于理解Python编程基础和数据结构的运用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值