🐍 知识库 Python L7 这篇笔记暂无摘要。 分类 Python 难度 提高 阅读 4 分钟 浏览 19 更新 2026-7-14 14:56:03 🌐 所有人可见 登录后记录进度 导出 MD 复制链接 打印 / PDF # ## 一、in 与 not in 的应用及相关知识 ### (一)学习内容概览 + 关键词 in 在列表中的应用 + print() 多参数用法 + 关键词 not in 在列表中的应用 + if 多层嵌套结构 ### (二)知识点详解 #### 1. 关键词 in 在列表中的应用 + **功能**:判断一个元素是否在列表中 + **语法**:`元素 in 列表` + **示例**: ```python pencil_box = ['pen', 'ruler', 'eraser'] a = 'ruler' if a in pencil_box: print('yes') ``` + **执行逻辑**:若元素在列表中,表达式值为 True,执行下级代码;否则为 False + **循环遍历应用**: ```python for x in ['A', 'B', 'C']: print(x, end="") # 输出:ABC ``` #### 2. print() 多参数用法 + **格式**:`print(参数1, 参数2, ...)` + **特点**:多个参数用逗号分隔,打印在同一行,参数间以空格分隔 + **示例**: ```python print(23, 4, 56) # 输出:23 4 56 a = '乌拉乎' print(a, 12) # 输出:乌拉乎 12 ``` #### 3. 关键词 not in 在列表中的应用 + **功能**:判断元素不在列表中 + **语法**:`元素 not in 列表` + **示例**: ```python seasons = ["春天", "夏天", "秋天", "冬天"] a = "早晨" if a not in seasons: print(a, "不是季节") # 输出:早晨 不是季节 ``` #### 4. if 多层嵌套 + **示例**: ```python list_01 = ['A', 'B', 'C', 'H'] list_02 = ['A', 'B', 'E', 'F'] for letter in list_01: if letter in list_02: print(letter + " is exists") else: print(letter + " is not exists") ``` + **运行结果**: ```plain A is exists B is exists C is not exists H is not exists ``` ## 二、初识字典 ### (一)学习内容概览 + 字典的创建 + 键值对概念 + 查找、修改字典中的值 + 字典的遍历 + 字典中 in 的使用 + 字典与列表的对比 ### (二)知识点详解 #### 1. 字典的创建 + **格式**:`字典名称 = {键1: 值1, 键2: 值2, ...}` + **示例**: ```python gender = {"桃子": "女", "乌拉乎": "男"} age = {"禾木": 14, "桃子": 13, "乌拉乎": 14} ``` #### 2. 键值对 + **结构**:每个键对应一个值,形如 `键: 值` + **特点**:键唯一,值可重复 #### 3. 查找字典中的值 + **语法**:`字典名称[键]` + **示例**: ```python trees = {'松树': 120, '玉兰树': 50, '槐树': 70} a = trees['玉兰树'] print(a) # 输出:50 ``` #### 4. 修改字典中的值 + **语法**:`字典名称[键] = 新值` + **示例**: ```python trees = {'松树': 120, '玉兰树': 50} trees['玉兰树'] = 60 print(trees) # 输出:{'松树': 120, '玉兰树': 60} ``` #### 5. 字典的遍历 + **示例**: ```python trees = {"松树": 120, "玉兰树": 50} for i in trees: print(i, trees[i]) # 输出:松树 120 玉兰树 50 ``` + **条件遍历示例**: ```python level = {"电流扩大器": 10, "硬盘": 10, "螺丝": 1, "砝码": 1, "特制扳机": 1, "电磁集束弹": 10} for i in level: if level[i] >= 10: level[i] = '高级' else: level[i] = '低级' print(level) ``` #### 6. 字典中 in 的使用 + **功能**:判断键是否存在于字典中 + **示例**: ```python trees = {'松树': 120, '玉兰树': 50} if "玉兰树" in trees: print('Yes') ``` #### 7. 字典与列表的对比 | **对比维度** | **列表** | **字典** | | --- | --- | --- | | **数据结构** | 有序元素集合 | 键值对集合 | | **访问方式** | 索引(从0开始) | 键 | | **元素唯一性** | 可重复 | 键唯一,值可重复 | | **示例** | `name = ['A', 'B']`,`print(name[1])` | `age = {'桃子': 13}`,`print(age['桃子'])` | ## 三、字典进阶 ### (一)学习内容概览 + keys() 命令 + values() 命令 + 新增键值对 + 字典的综合应用(数据库系统案例) ### (二)知识点详解 #### 1. keys() 命令 + **功能**:获取字典中所有的键 + **语法**:`字典名称.keys()` + **示例**: ```python shop = {"手套": 23, "帽子": 42, "围巾": 12} print(shop.keys()) # 输出:dict_keys(['手套', '帽子', '围巾']) ``` + **键存在性判断**: ```python info = {'01': '苹果', '02': '脐橙', '03': '香蕉'} n = '02' if n in info.keys(): print(info[n]) # 输出:脐橙 else: print("没有这个水果") ``` #### 2. values() 命令 + **功能**:获取字典中所有的值 + **语法**:`字典名称.values()` + **示例**: ```python shop = {"手套": 23, "帽子": 42, "围巾": 12} print(shop.values()) # 输出:dict_values([23, 42, 12]) ``` #### 3. 新增键值对 + **语法**:`字典名称[新键] = 新值` + **示例**: ```python dict = {'飞机': 12} dict["火车"] = 9 print(dict) # 输出:{'飞机': 12, '火车': 9} ``` + **键重复处理**:若新键已存在,将修改对应的值 ```python dict = {'飞机': 12} dict['飞机'] = 9 print(dict) # 输出:{'飞机': 9} ``` #### 4. 字典的综合应用(数据库系统) + **功能**:实现查询、添加、退出功能 + **代码示例**: ```python data = {'机器学习核晶': '反转乾坤', '大数据核晶': '数据回溯', '人工智能伦理核晶': '裁决', '马文明斯基核晶': '智能创造'} while True: cmd = input() if cmd == 'q': print("退出") break elif cmd == 's': name = input() if name in data.keys(): print(data[name]) else: print("没有查询数据") elif cmd == 'a': name = input() func = input() data[name] = func else: print("指令无效!") ``` + **输入示例**: ```plain a 神经网络核晶 零秒识别 ``` + **输出结果**: ```plain {'机器学习核晶': '反转乾坤', '大数据核晶': '数据回溯', '人工智能伦理核晶': '裁决', '神经网络核晶': '零秒识别', '马文明斯基核晶': '智能创造'} ``` ## 四、认识元组 ### (一)学习内容概览 + 元组的创建 + 元组的索引 + 元组的切片 + tuple() 命令(列表转元组) + index() 命令(获取元素索引) ### (二)知识点详解 #### 1. 元组的创建 + **定义**:存放多个数据的容器,元素不可修改 + **格式**:`元组名称 = (元素1, 元素2, ...)` + **示例**: ```python a = (5,) # 单个元素元组需加逗号 b = (5) # 会被当作整数 print(a) # 输出:(5,) print(b) # 输出:5 ``` + **混合数据类型**: ```python data = ('春', '夏', 2023, True) ``` #### 2. 元组的索引 + **正向索引**:从0开始 ```python data = ('春', '夏', '秋', '冬') print(data[2]) # 输出:秋 ``` + **反向索引**:从-1开始(最后一个元素) ```python data = ("风", "雨", "雷", "电") print(data[-2]) # 输出:雷 ``` #### 3. 元组的切片 + **功能**:获取元组中连续的一段元素,返回新元组 + **格式**:`元组名称[起始索引:结束索引]`(含起始,不含结束) + **示例**: ```python data = ('A', 'B', 'C', 'D', 'E') print(data[1:4]) # 输出:('B', 'C', 'D') print(data[:3]) # 输出:('A', 'B', 'C')(获取起始到索引3前的元素) ``` #### 4. tuple() 命令 + **功能**:将列表转换为元组 + **示例**: ```python height = [12, 10, 8, 11, 5, 3] height.remove(11) # 删除元素11 tup = tuple(height) print(tup) # 输出:(12, 10, 8, 5, 3) ``` #### 5. index() 命令 + **功能**:获取指定元素的索引(列表可用,元组不可用) + **语法**:`列表名称.index(元素)` + **示例**: ```python info = ['G', 'o', 'o', 'D'] print(info.index('o')) # 输出:1(返回第一个匹配元素的索引) ``` ## 五、可变循环 ### (一)学习内容概览 + range() 函数的参数设置 + print() 不换行设置 + 循环的步长控制 + 可变嵌套循环 ### (二)知识点详解 #### 1. range() 函数参数 + **格式**:`range(开始值, 结束值)`(含开始,不含结束) + **示例**: ```python for i in range(1, 4): print(i) # 输出:1 2 3 ``` + **单参数模式**:`range(结束值)`,开始值默认为0 ```python for i in range(4): print(i) # 输出:0 1 2 3 ``` #### 2. print() 不换行 + **参数**:`end`,设置打印结尾字符(默认换行符 `\n`) + **示例**: ```python print(1, end="") print(2) # 输出:12(不换行) print(1, end=" ") print(2) # 输出:1 2(以空格结尾) ``` #### 3. 循环的步长 + **格式**:`range(开始值, 结束值, 步长)` + **正向步长示例**: ```python for i in range(1, 6, 2): print(i, end=" ") # 输出:1 3 5 ``` + **反向步长示例**: ```python for i in range(3, -1, -1): print(i) # 输出:3 2 1 0 ``` #### 4. 可变嵌套循环 + **开始值为变量**: ```python for i in range(1, 4): start = i for j in range(start, 5): print(i, j) ``` + **运行效果**: ```plain 1 1 1 2 1 3 1 4 2 2 2 3 2 4 3 3 3 4 ``` + **结束值为变量**: ```python for i in range(1, 4): stop = i + 1 for j in range(1, stop): print(i, j) ``` + **运行效果**: ```plain 1 1 2 1 2 3 1 2 3 ``` ## 六、猜拳游戏项目 ### (一)学习内容概览 + 设置总回合数 + 玩家输入手势处理 + 电脑随机生成手势 + 判断猜拳胜负并计分 + 打印游戏最终结果 ### (二)知识点详解 #### 1. 设置总回合数 + **代码示例**: ```python n = input("请输入总回合数:") n = int(n) print(n) ``` + **输入示例**:`3`,输出:`3` #### 2. 玩家输入手势处理 + **结合字典与循环**: ```python rule = {1: "石头", 2: "剪刀", 3: "布"} n = input("请输入回合数:") n = int(n) r = 0 while r < n: p = input("请输入手势编号:") p = int(p) if p not in rule.keys(): print("编号错误,请重新输入") continue print("玩家选择:", rule[p]) r += 1 ``` #### 3. 电脑随机生成手势 + **使用 random 模块**: ```python import random rule = {1: "石头", 2: "剪刀", 3: "布"} c = random.randint(1, 3) print("电脑选择:", rule[c]) ``` #### 4. 判断猜拳胜负并计分 + **胜负逻辑**: ```python import random rule = {1: '石头', 2: '剪刀', 3: '布'} score_p = 0 # 玩家分数 score_c = 0 # 电脑分数 n = int(input("请输入总回合数:")) for i in range(n): p = int(input("请输入手势编号:")) print("玩家选择:", rule[p]) c = random.randint(1, 3) print("电脑选择:", rule[c]) if (p == 1 and c == 2) or (p == 2 and c == 3) or (p == 3 and c == 1): score_p += 1 elif p == c: score_p += 1 score_c += 1 else: score_c += 1 ``` #### 5. 打印游戏最终结果 + **结果判断**: ```python if score_p > score_c: print("玩家胜利") elif score_p == score_c: print("平局") else: print("电脑胜利") ``` ## 七、星座查询程序 ### (一)学习内容概览 + 项目梳理(输入、处理、判断) + 信息输入验证 + 日期处理与星座日期范围匹配 + 特殊星座(摩羯座)的日期处理 ### (二)知识点详解 #### 1. 项目梳理 + **第一部分**:信息输入(接收用户输入并验证) + **第二部分**:信息处理(转换日期格式,匹配星座范围) + **第三部分**:信息判断(输出对应星座) #### 2. 信息输入验证 + **代码示例**: ```python while True: d = input("请输入出生日期:") if d.isdigit(): print('出生日期:', d) break else: print('输入的日期有误') ``` #### 3. 日期处理与星座匹配 + **星座日期字典**: ```python info = {'水瓶座': '0120-0218', '双鱼座': '0219-0320', '白羊座': '0321-0419', '金牛座': '0420-0520', '双子座': '0521-0621', '巨蟹座': '0622-0722', '狮子座': '0723-0822', '处女座': '0823-0922', '天秤座': '0923-1023', '天蝎座': '1024-1122', '射手座': '1123-1221', '摩羯座': '1222-0119'} ``` + **匹配逻辑**: ```python d = int(d) for i in info: t = info[i].split('-') t1 = int(t[0]) t2 = int(t[1]) if d >= t1 and d <= t2: print('你的星座是:', i) break ``` #### 4. 摩羯座特殊日期处理 + **横跨年份处理**: ```python for i in info: t = info[i].split("-") t1 = int(t[0]) t2 = int(t[1]) if d >= t1 and d <= t2: print('你的星座是:', i) break if d >= 1222 and d <= 1231: print('你的星座是摩羯座') if d >= 101 and d <= 119: print('你的星座是摩羯座') break ``` 学习交流公开阅读不需要登录登录后可以评论、收藏并同步学习进度。登录暂时还没有评论。
学习交流