"这是一个关于Python编程的期末测试题目集,包含多个编程挑战,涉及列表操作、循环、条件判断、数学计算、字符串处理、递归、逻辑推理等多个知识点。" 1. 列表元素类型检查与合并去重 在这个问题中,你需要创建两个列表`list1`和`list2`,然后分别输出它们的元素类型。Python中,可以使用`type()`函数来检查元素类型。接着,你可以使用`+`操作符将两个列表合并,最后通过`set()`函数去除重复项。例如: ```python list1 = [1, 2, 3, 4, 5] list2 = [1, 2, 3, "王一博", 6.0] # 输出元素类型 for item in list1: print(type(item)) for item in list2: print(type(item)) # 合并并去重 merged_list = list1 + list2 unique_list = list(set(merged_list)) print(unique_list) ``` 2. 求1-100的奇数和 使用循环结构和条件判断,你可以找出1到100之间的所有奇数,并将它们相加。可以使用`range()`函数配合`step`参数来只遍历奇数: ```python odd_sum = 0 for i in range(1, 101, 2): odd_sum += i print(odd_sum) ``` 3. 广告标语合法性判断 你需要编写一个函数,接收一个字符串作为广告标语,然后检查它是否包含特定的敏感词汇。如果包含,返回"广告不合法",否则返回"广告合法": ```python def check_ad_slogan(slogan): sensitive_words = ["最", "第一", "稀缺", "国家级"] for word in sensitive_words: if word in slogan: return "广告不合法" return "广告合法" ``` 4. 张三吹蜡烛的问题 这是一个典型的数学问题,可以通过设定一个方程来解决。设张三从x岁开始吹蜡烛,今年y岁,那么有y * x = 275。可以通过尝试不同的y值来解这个方程,直到找到满足条件的x。 ```python def find_birthday_age(total_candles): for y in range(1, int(total_candles 0.5) + 1): x = total_candles // y if x * y == total_candles: return (x, y) age_started, current_age = find_birthday_age(275) print(f"张三从{age_started}岁开始吹蜡烛,今年{current_age}岁了。") ``` 5. 小明切割矩形材料问题 这是一个递归问题。首先确定最大正方形的边长,然后递归地处理剩余的矩形,直到矩形的面积小于1。可以使用`math.sqrt()`函数来获取一个数的平方根: ```python import math def cut_rectangles(width, height): if width <= 0 or height <= 0: return 0 max_square_side = min(width, height) squares = max_square_side + cut_rectangles(width - max_square_side, height - max_square_side) return squares num_squares = cut_rectangles(2019, 324) print(num_squares) ``` 6. 单词分类 这个任务要求根据每个单词的字母数量对单词进行分组。可以使用`collections.Counter`来统计每个单词的字母数量,然后使用`itertools.groupby`来分组: ```python from collections import Counter from itertools import groupby def classify_words(words): counter_dict = {word: len(word) for word in words} sorted_words = sorted(words, key=lambda x: counter_dict[x]) groups = [len(list(group)) for k, group in groupby(sorted_words, lambda x: counter_dict[x])] return len(groups) # 示例 words = ["live", "live", "roof"] print(classify_words(words)) # 输出: 2 ``` 7. 葡萄采摘问题 这是一个优化问题,可以使用优先队列(Python中的`heapq`模块)来解决。每次从最容易摘到的葡萄开始摘,直到力气耗尽。葡萄按其采摘难度排序,即按力气值排序: ```python import heapq def max_grapes(n, s, a, b, heights, energies): grapes = [(height - a, energy) for height, energy in zip(heights, energies)] heapq.heapify(grapes) count = 0 while s >= 0 and grapes: _, energy = heapq.heappop(grapes) s -= energy if s < 0: break count += 1 return count # 示例 n = 3 s = 10 a = 5 b = 10 heights = [8, 12, 15] energies = [3, 5, 7] print(max_grapes(n, s, a, b, heights, energies)) # 输出: 2 ``` 以上是各个问题的详细解答,涵盖了Python编程中的多个核心概念。
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/5b73bc1583d84bd6a84bd62582f2c376_zero_plus_seven.jpg!1)
- 粉丝: 0
- 资源: 4
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- 解决本地连接丢失无法上网的问题
- BIOS报警声音解析:故障原因与解决方法
- 广义均值移动跟踪算法在视频目标跟踪中的应用研究
- C++Builder快捷键大全:高效编程的秘密武器
- 网页制作入门:常用代码详解
- TX2440A开发板网络远程监控系统移植教程:易搭建与通用解决方案
- WebLogic10虚拟内存配置详解与优化技巧
- C#网络编程深度解析:Socket基础与应用
- 掌握Struts1:Java MVC轻量级框架详解
- 20个必备CSS代码段提升Web开发效率
- CSS样式大全:字体、文本、列表样式详解
- Proteus元件库大全:从基础到高级组件
- 74HC08芯片:高速CMOS四输入与门详细资料
- C#获取当前路径的多种方法详解
- 修复MySQL乱码问题:设置字符集为GB2312
- C语言的诞生与演进:从汇编到系统编程的革命
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)