python第四次作业

这篇博客包含一系列编程作业,涉及数组操作、素数搜索、列表操作和排序算法等基础编程概念。作业涵盖从拿硬币的最优化策略到寻找孪生素数,再到列表的反转和排序,以及数据处理如去重、合并和计算统计量。这些练习旨在提升编程思维和算法实现能力。

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

作业1:有一堆硬币,每次只能拿一个或者两个,求最少多少次可以拿完硬币
        [10, 8, 5, 3, 27, 99]


作业2:如果两个素数之差为2,这样的两个素数就叫作"孪生数",找出100以内的所有"孪生数".

 

 

作业3:给定一个列表,求最大值(不能使用系统api),求最小值,求平均值、求和

 

作业4:将list中的重复数据去重,至少使用两种方案

 

 

作业5:两个列表进行合并操作

 

作业7:列表的反转  列表的排序

            反转

排序

 

 

作业8:如何将0-10随机存入列表中


【选做】
    
作业11:给定一个10个元素的列表,请完成排序(注意,不要使用系统api)

 

作业12:求  a+aa+aaa+.......+aaaaaaaaa=?其中a为1至9之中的一个数,项数也要可以指定。

 

作业13:合并两个有序数组,合并后还是有序列表

 

作业14:给定一个非负整数数组A,将该数组中的所有偶数都放在奇数元素之前

 

### 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、付费专栏及课程。

余额充值