python第二章

发布时间:2026/8/6 4:05:26
python第二章
列表测试题题目1增删改指定位置操作现有列表 score [78, 92, 65, 88, 70]1. 在索引2的位置插入数字952. 删除列表中数值最小的元素3. 将最后一个元素修改为1004. 打印处理完成后的完整列表score [78, 92, 65, 88, 70] # 1. 在索引2的位置插入数字95 score.insert(2, 95) # 2. 删除列表中数值最小的元素 # 先找出最小值再根据值进行删除 min_val min(score) score.remove(min_val) # 3. 将最后一个元素修改为100 score[-1] 100 # 4. 打印处理完成后的完整列表 print(题目1结果:, score)题目2索引、切片、倒序截取words [春天,夏天,秋天,冬天,清晨,傍晚]1. 取出偶数下标全部元素2. 倒序切片取出中间4个元素3. 截取从第2个到倒数第2个元素并打印words [春天,夏天,秋天,冬天,清晨,傍晚] # 1. 取出偶数下标全部元素 (步长为2) print(题目2-1:, words[::2]) # 2. 倒序切片取出中间4个元素 # 原列表倒序为[傍晚, 清晨, 冬天, 秋天, 夏天, 春天] # 中间4个是清晨, 冬天, 秋天, 夏天 # 对应的倒序索引是 [1:5] print(题目2-2:, words[-2:-6:-1]) # 或者使用正序切片后反转print(words[1:5][::-1]) # 3. 截取从第2个到倒数第2个元素并打印 # 第2个元素索引是1倒数第2个元素的下一个索引是-1 print(题目2-3:, words[1:-1])题目3遍历、条件筛选求和数字列表 nums [12, -5, 33, 8, -10, 45, 21, -3]使用for循环完成1. 筛选出列表里所有正数2. 计算所有正数的累加和3. 分别打印正数列表、正数总和nums [12, -5, 33, 8, -10, 45, 21, -3] positive_nums [] # 存放正数 total_sum 0 # 存放正数累加和 # 使用for循环遍历 for num in nums: if num 0: # 筛选正数 positive_nums.append(num) total_sum num # 打印结果 print(题目3-正数列表:, positive_nums) print(题目3-正数总和:, total_sum)题目4用户输入列表追加统计次数初始化空列表 user_list []1. 循环让用户连续输入5个整数全部存入列表2. 接收用户额外输入一个目标数字3. 统计目标数字在列表中出现的次数并输出提示user_list [] # 1. 循环让用户连续输入5个整数 for _ in range(5): try: val int(input(请输入一个整数: )) user_list.append(val) except ValueError: print(输入无效请输入数字。) # 2. 接收用户额外输入一个目标数字 try: target int(input(请输入要统计的目标数字: )) # 3. 统计目标数字在列表中出现的次数 count user_list.count(target) print(f目标数字 {target} 在列表中出现了 {count} 次。) except ValueError: print(目标数字输入无效。)题目5综合难题去重、筛选、排序、逆序原始列表 data [16, 7, 22, 7, 9, 16, 30, 9, 12, 22, 5]要求分步实现1. 列表去重保留原始数据所有不重复数字2. 筛选出大于10的数字组成新列表3. 新列表从小到大排序后再整体反转4. 输出最终结果data [16, 7, 22, 7, 9, 16, 30, 9, 12, 22, 5] # 1. 列表去重保留原始数据所有不重复数字 # 使用 dict.fromkeys() 可以在去重的同时保持原有顺序 unique_data list(dict.fromkeys(data)) # 2. 筛选出大于10的数字组成新列表 new_list [num for num in unique_data if num 10] # 3. 新列表从小到大排序后再整体反转 new_list.sort() # 从小到大排序 new_list.reverse() # 整体反转 (或者用 new_list new_list[::-1]) # 4. 输出最终结果 print(题目5最终结果:, new_list)字典字符串测试题题目1字符串分割字典存储给定字符串 info 张三:23,李四:21,王五:25 规则1. 先按逗号分割每个人信息2. 再按冒号分割姓名、年龄3. 把数据存入字典姓名为键年龄转为数字为值4. 最终打印完整字典并输出字典里所有人的平均年龄。info 张三:23,李四:21,王五:25 student_dict {} # 1. 先按逗号分割 person_list info.split(,) for person in person_list: # 2. 再按冒号分割 name, age_str person.split(:) # 3. 存入字典年龄转数字 student_dict[name] int(age_str) # 4. 打印字典 print(完整字典:, student_dict) # 计算平均年龄sum(值列表) / 长度 avg_age sum(student_dict.values()) / len(student_dict) print(f平均年龄: {avg_age:.2f})题目2字符串清洗字典统计输入一段句子 text apple banana apple orange banana apple要求1. 去除字符串多余空格分割成单词列表2. 使用字典统计每个水果出现的次数3. 打印统计字典并且打印出现次数最多的水果。text apple banana apple orange banana apple # 1. 去除多余空格并分割 words text.strip().split() # 2. 统计次数 count_dict {} for word in words: # 如果word存在返回当前值不存在返回0然后1 count_dict[word] count_dict.get(word, 0) 1 # 3. 打印统计结果 print(统计字典:, count_dict) # 找出出现次数最多的水果 # max(字典, key字典.get) 会返回 value 最大的那个 key max_fruit max(count_dict, keycount_dict.get) print(f出现次数最多的水果: {max_fruit} ({count_dict[max_fruit]}次))题目3字典遍历字符串拼接有学生分数字典score {小明: 88, 小红: 95, 小刚: 72, 小丽: 91}要求1. 遍历字典筛选分数大于90分的学生2. 将高分学生姓名用 、 拼接成一句字符串3. 打印输出本次优秀学生名单xxx、xxxscore {小明: 88, 小红: 95, 小刚: 72, 小丽: 91} high_score_names [] # 1. 遍历筛选 for name, sc in score.items(): if sc 90: high_score_names.append(name) # 2. 拼接字符串 # 注意join 的参数必须是字符串列表 result_str 、.join(high_score_names) # 3. 打印 print(f本次优秀学生名单{result_str})题目4字符串替换、切片字典更新user {name: tom, age: 28}name_str TOM_1996需求1. 截取 name_str 下划线前的英文全部小写替换字典里原来的name2. 截取下划线后数字转为整数计算今年2026减去出生年份更新age3. 打印更新后的完整字典。user {name: tom, age: 28} name_str TOM_1996 # 1. 截取下划线前的英文全部小写 new_name name_str.split(_)[0].lower() user[name] new_name # 更新字典 # 2. 截取下划线后数字计算年龄 birth_year int(name_str.split(_)[1]) current_year 2026 # 题目指定今年2026 user[age] current_year - birth_year # 更新字典 # 3. 打印 print(更新后的字典:, user)题目5综合大题字符串解析、字典嵌套、条件筛选原始文本data 篮球:张三,90;羽毛球:李四,85;篮球:王五,82;乒乓球:赵六,95要求1. 按分号拆分每条运动数据2. 构建嵌套字典格式 {运动名称: {姓名: 分数}} 3. 遍历字典找出篮球项目平均分4. 用字符串格式化输出篮球项目平均分数为xx分。data 篮球:张三,90;羽毛球:李四,85;篮球:王五,82;乒乓球:赵六,95 # 1. 按分号拆分 records data.split(;) # 2. 构建嵌套字典 {运动: {姓名: 分数}} sports_dict {} for record in records: # 先按冒号拆[篮球, 张三,90] sport, info record.split(:) # 再按逗号拆[张三, 90] name, score_str info.split(,) score_val int(score_str) # 如果运动还没在字典里先初始化空字典 if sport not in sports_dict: sports_dict[sport] {} # 存入姓名和分数 sports_dict[sport][name] score_val # 3. 找出篮球项目平均分 basketball_scores sports_dict[篮球].values() avg_basketball sum(basketball_scores) / len(basketball_scores) # 4. 格式化输出 print(f篮球项目平均分数为{avg_basketball:.2f}分) # (可选) 打印完整嵌套字典看看结构 # print(sports_dict)