python第四次作业

本文介绍了一种使用Python编程批量生成银行卡号及默认密码的方法。通过循环和字典操作,实现了100个特定格式卡号的创建,并将初始密码统一设置为'redhat'。文中展示了具体的代码实现过程,包括卡号生成、字典构建及信息输出。

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

作业:

1. 随机生成100个卡号; 卡号以6102009开头, 后面3位依次是 (001, 002, 003, 100>),

2. 生成关于银行卡号的字典, 默认每个卡号的初始密码为"redhat";

3. 输出卡号和密码信息, 格式如下:

卡号                  密码
6102009001              000000
s = []
for i in range(100):
    s1 = '6101009%.3d' %(i+1)
    s.append(s1)
s2={}.fromkeys(s,'redhat')
print('银行卡号\t\t\t密码')
for key, value, in s2.items():
    #print('%s\t\t\t%s' %(key, s2[key]))
    print('%s\t\t\t%s' % (key, value))

 

### Python 第四次编程作业 示例 #### 题目描述 编写一个函数 `check_password_strength(password)`,用于检查给定密码的强度。密码强度分为以下三类: - **强密码**:包含数字、大小写字母以及特殊字符。 - **中等强度**:包含数字和大小写字母,或者大小写字母和特殊字符。 - **弱密码**:仅包含数字、小写字母或大写字母。 - **密码不符合要求**:未满足上述任何条件。 此外,函数需要返回对应的密码强度等级。 --- #### 解决方案 以下是实现该功能的代码示例: ```python import string def check_password_strength(password): has_digit = False # 是否包含数字 has_lower = False # 是否包含小写字母 has_upper = False # 是否包含大写字母 has_special = False # 是否包含特殊字符 for char in password: # 遍历密码中的每个字符 if char.isdigit(): # 判断是否为数字 has_digit = True elif char.islower(): # 判断是否为小写字母 has_lower = True elif char.isupper(): # 判断是否为大写字母 has_upper = True elif char in string.punctuation: # 判断是否为特殊字符 has_special = True # 判断密码强度 if (has_digit and (has_lower or has_upper)) or (has_lower and has_upper): # 中等强度条件 if has_special: # 如果包含特殊字符,则为强密码 return "强密码" return "中等强度" # 否则为中等强度 elif has_digit or has_lower or has_upper: # 弱密码条件 return "弱密码" return "密码不符合要求" # 不符合要求 ``` --- #### 测试用例 以下是一些测试用例,验证函数的正确性: ```python # 测试用例 1:强密码 print(check_password_strength("Abc123!")) # 输出: 强密码 # 测试用例 2:中等强度 print(check_password_strength("Abc123")) # 输出: 中等强度 # 测试用例 3:弱密码 print(check_password_strength("abc123")) # 输出: 弱密码 # 测试用例 4:密码不符合要求 print(check_password_strength("abc")) # 输出: 密码不符合要求 ``` --- #### 注意事项 1. 函数依赖于 `string` 模块,因此需要导入该模块以使用 `string.punctuation`[^4]。 2. 特殊字符的判断基于 `string.punctuation`,包括但不限于以下字符:`!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~`[^4]。 3. 确保输入的密码字符串非空,否则可能导致逻辑错误。 --- #### 进一步扩展 如果需要更复杂的密码强度检测规则,可以考虑以下改进: - 增加密码长度限制(如最少8个字符)。 - 检测连续重复字符(如 `aaa` 或 `111`)。 - 检测常见密码模式(如 `password123`)。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值