Python语言学习笔记
📅 2026/7/14 5:48:31
👁️ 阅读次数
📝 编程学习
数据容器-列表:
列表的常见方法:
| 方法 | 作用 | 样例 |
|---|---|---|
| append() | 在列表尾部追加元素 | s.append(10000) |
| insert() | 在指定索引之前,插入该元素 | s.insert(0,92) s.insert(索引,元素) |
| remove() | 移除列表中第一个匹配到的值 | s.remove(75) |
| pop() | 删除列表中指定索引位置的元素(未指定索引,删除最后一个) | s.pop(2) / s.pop() |
| sort() | 对列表进行排序(列表元素数据类型一致,才可进行排序) | s.sort() |
| reverse() | 反转列表元素 | s.reverse() |
s=[56,90,88,65,90,100,200,72,145] print(s) s.append(188) print(s) s.insert(2,80) print(s) s.remove(90) print(s) e=s.pop(1) print(e) e=s.pop() print(e) s.sort() print(s) s.reverse() print(s) [56, 90, 88, 65, 90, 100, 200, 72, 145] [56, 90, 88, 65, 90, 100, 200, 72, 145, 188] [56, 90, 80, 88, 65, 90, 100, 200, 72, 145, 188] [56, 80, 88, 65, 90, 100, 200, 72, 145, 188] 80 188 [56, 65, 72, 88, 90, 100, 145, 200] [200, 145, 100, 90, 88, 72, 65, 56]
Python中用于数据统计的常见语句:
| min() | 获取最小值 | min(s) |
| max() | 获取最大值 | max(s) |
| len() | 获取元素个数 | len(s) |
| sum() | 求和 | sum(s) |
列表案例:
案例1:将用户输入的10个数字,存储到一个列表中,并将列表中的数字进行排序,输出其中最小值、最大值和平均值。
#1.定义列表 num_list= [] #2.将用户输入10个数字存入列表 for i in range(10): num=int(input("请输入一个有效数字:")) num_list.append(num) print("数字列表:",num_list) #排序 num_list.sort() print("排序后的数字列表:",num_list) #4.输入其中的最小值、最大值和平均值 print("最小值:",num_list[0]) print("最大值:",num_list[-1]) print("平均值:",sum(num_list)/len(num_list))备注:定义 列表,循环输入数字,append方法存入列表,打印列表,sort方法给列表排序,根据索引列出最小值和最大值、平均值。
案例2:合并两个列表中的元素,并对合并的结果进行去重处理(去除列表中的重复元素)。
num_list1 =[19,23,54,64,875,20,109,232,123,54] num_list2 = [5, 80,72, 35, 60,123, 54, 29, 91] #1.合并列表 #解包:将列表这一容器解开成一个一个独立元素 #组包:将多个值合并到一个容器 #合并方法1:解包+组包 num_list=[*num_list1,*num_list2] #合并方法2:遍历列表元素后,append添加 num_list=num_list1+num_list2 #合并方法3:遍历列表元素后,append添加 for num in num_list1: num_list2.append(num) #去除重复记录 new_list=[]#去除重复记录后的列表 for num in num_list: if num not in new_list: #去重 new_list.append(num) print(new_list)
解包:将列表这一容器解开成一个一个独立元素
*num_list1
*num_list2
组包:将多个值合并到一个容器
num_list=[*num_list1,*num_list2]
案例2知识点:
1.如何快速合并两个列表?
- 使用+运算符直接合并
- 使用*进行解包操作(解包指将列表这一类数据容器解开成独立的元素)
2.如何判断一个元素是否存在于列表之中?
- 可以使用in运算符,语法为 元素 in 列表
- 返回结果为布尔值,True表示存在,False表示不存在
案例3:生成1-20平方列表
方式一:传统方式
num_list=[] for i in range(1,21): num_list.append(i**2) print(num_list)
方式二:列表推导式--->就是按照一定的方式生成一个列表的方式-->
语法格式1:[要插入的值 for i in 序列/列表]
num_list2 = [i**2 for i in range(1,21)] print(num_list)
案例4:从如下数字列表中提取所有偶数,并计算其平方,组成一个新的列表
方式一:列表推导式--->就是按照一定的方式生成一个列表的方式-
语法格式2:[要插入的值for i in序列/列表if条件]
num_list=[12,32,45,77,80,92,33,57,97,98]
new_list=[i**2for i innum_listif i%2==0]
print(new_list)
列表练习题:
![]()
数据容器-字符串
- 介绍:字符串是字符的容器,一个字符串可以存放任意数量的字符。
- 特点:不可变性(无法修改)、有序性、可迭代性(可以遍历 )。
- 字符串中的每个一个字符元素都有其对应的下标(索引),通过元素对应的索引,就可获取到对应的元素。
字符串的特点
不可变性(无法修改)
s = "Hello Python" print(s[4]) # Forward indexing print(s[-8]) # Reverse indexing s[4] = "X" print(s)
bash C:\Users\xxx\AppData\Roaming\Python\Scripts\uv.exe run D:/develop/Python/Python314/python.exe C:\Users\wangy\PycharmProjects\test\lesson\data-container-str.py o Traceback (most recent call last): File "C:\Users\wangy\PycharmProjects\test\lesson\data-container-str.py", line 5, in <module> s[4] = "X" ~^^^ TypeError: 'str' object does not support item assignment Process finished with exit code 1
可迭代性
s = "Hello Python
for i in s:
print(i)
有序性
字符串的索引
- 正向索引:从0开始
- 反向索引:从-1开始
字符串的切片
语法:s[start:end:step]
- start:开始索引,不指定默认为0(第一个元素的索引)
- end:结束索引,不指定默认为-1(最后一个元素的索引)
- step:步长,不指定默认为1(-1表示从后向前)
s = "Hello Python" #切片 print(s[0:5:1]) print(s[:5:1]) print(s[:5:]) print(s[:5]) print(s[6:12:2]) #结束位置11索引位+1 才能包含 print(s[12:6:-1]) #开始索引和结束索引必须与步长方向保持一致 print(s[6::1]) #从6开始到末尾 print(s[6::]) #从6开始到末尾 print(s[-6:]) # 从后往前数6个 print(s[::-1]) #反转
字符串的常用方法
| 方法 | 作用 | 样例 |
| find() | 在字符串中查找子串,返回第一次出现的索引位置,找不到返回-1 | s.find('Python') |
| count() | 统计子串在字符串中出现的次数 | s.count('H') |
| upper() | 将字符串中的所有字母转换为大写 | s.upper() |
| lower() | 将字符串中的所有字母转换为小写 | s.lower() |
| split() | 将字符串指定分隔符分割成列表 | s.split(' ') |
| strip() | 去除字符串两端的空白字符或指定字符 | s.strip()/s.strip('*') |
| replace() | 将字符串中的子串替换为新的子串 | s.replace('H','C') |
| startswith() | 检查字符串是否以指定子串开头,返回布尔值 | s.startswtich('P') |
字符串案例
1.邮箱格式验证:用户输入一个邮箱,验证邮箱格式是否正确(包含一个@和至少一个·),如果输入正确,输出"邮箱格式正确",否则输出"邮箱格式错误"。
#方式一: mail = input("请输入邮箱:") if mail.count("@") == 1 and mail.count(".") >= 1: print(f"{mail}的邮箱格式正确") else: print(f"{mail}的邮箱格式错误")#方式二:in 运算符 mail = input("请输入邮箱:") if mail.count("@") == 1 and mail.count(".") >= 1: if mail.count("@") == 1 and "." in mail: print(f"{mail}的邮箱格式正确") else: print(f"{mail}的邮箱格式错误")1.如何判断指定的子字符串是否出现在字符串之中?
- in 运算符,返回bool值
s = "Hello Python" r = 'H' in s print(r)
1,输入一个字符串,判断该字符串是否是回文(两边对称)
- 黄山落叶松叶落山黄
- 上海自来水来自海上
str = input("请输入字符串:") if str == str[::-1]: print(f"{str}是回文") else: print(f"{str}不是回文")2.将用户输入的10个字符串,反转后全部转换为大写,然后记录在列表中,最后将列表内容,遍历输出出来。
基础版本(直接实现需求)
strings = [] for i in range(10): s = input(f"请输入第{i+1}个字符串: ") strings.append(s) 2. 反转并转换为大写,存入新列表 result = [] for s in strings: reversed_upper = s[::-1].upper() result.append(reversed_upper) 3. 遍历输出 for item in result: print(item)精简版本(列表推导式)
# 1. 接收用户输入的10个字符串 strings = [input(f"请输入第{i+1}个字符串: ") for i in range(10)] 2. 使用列表推导式将每个字符串反转并转换为大写 result = [s[::-1].upper() for s in strings] 3. 遍历输出处理后的结果 for item in result: print(item)增强版本(带序号输出 + 输入验证)
strings = [] for i in range(10): s = input(f"请输入第{i+1}个字符串: ") # 可选:去除首尾空格 strings.append(s.strip()) # 反转并转大写 result = [s[::-1].upper() for s in strings] # 带序号遍历输出 for index, item in enumerate(result, start=1): print(f"第{index}个处理结果: {item}")
编程学习
技术分享
实战经验