Python二级等考知识点整理——高教版Python语言程序设计冲刺试卷(三)

《高教版Python语言程序设计冲刺试卷》——模拟试卷C知识点

本文根据该书模拟试卷C答案及试卷讲解整理得,具有题目针对性,不涵盖部分送分题。欢迎探讨。

1.栈和队列
栈:指定了一端进行插入与删除的线性表,按照先进后出、后进先出原则,具有记忆作用
队列:允许在一段插入并在另一端删除的线性表,按照先进先出、后进后出原则,一般采取循环队列形式顺序存储,由队头指针和队尾指针共同决定其元素个数
2.模块独立性
模块独立性是评价软件设计好坏的度量标准。耦合性低、内聚性高的软件模块独立性好,意味着该软件质量高。
3.数据库系统
数据库系统核心:数据库管理系统
数据独立性:数据与程序之间互不依赖
4.python变量特点
随时命名、随时赋值、随时使用。
5.综合应用题

题目要求:

  • 使用 random 库,采用 0x1010作为随机数种子。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬
  • 密码 abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&* 中的字符组成。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬
  • 每个密码长度固定为 10 个字符。
  • 程序运行每次产生 10个密码,每个密码一行。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬
  • 每次产生的 10个密码首字符不能一样。‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬
  • 程序运行后产生的密码保存在“随机密码.txt”文件中。

自己敲的代码如下,运用直接重排密码字符本取前十位的方式生成密码,自己跑没问题但是平台自动评阅认不出来。

#PasswordGenerator
import random
random.seed(0x1010)
def SINGLEPASS(codebook):
    passwords=''.join(codebook)
    password=passwords[0:10]
    return password
    
def WRITEFILE(password):
    file=open('随机密码.txt','a',encoding='utf-8')
    file.write(password+'\n')
    file.close

def MAIN():
    initials=[]
    codebook=['a','b','c','d','e','f','g','h','i','j',\
              'k','l','m','n','o','p','q','r','s','t',\
              'u','v','w','x','y','z','A','B','C','D',\
              'E','F','G','H','I','J','K','L','M','N',\
              'O','P','Q','R','S','T','U','V','W','X',\
              'Y','Z','1','2','3','4','5','6','7','8',\
              '9','0','!','@','#','$','%','^','&','*']
    i=0
    while i<10:
        random.shuffle(codebook)
        password=SINGLEPASS(codebook)
        if password[0] not in initials:
            WRITEFILE(password)
            initials.append(password[0])
            i+=1
MAIN()

参考答案代码如下,是采用了密码字符本不动随机蹦字符的方法。

import random
random.seed(0x1010)
s = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*"
ls = []
excludes = ""
while len(ls) < 10:
    pwd = ""
    for i in range(10):
        pwd += s[random.randint(0, len(s)-1)]
    if pwd[0] in excludes:
        continue
    else:
        ls.append(pwd)
        excludes += pwd[0]
        
# 直接打印
print("\n".join(ls))
# 或写入文件
fo = open("随机密码.txt", "w")
fo.write("\n".join(ls))
fo.close()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值