当前位置: 首页 > news >正文

Python语言学习笔记

数据容器-列表:

列表的常见方法:

方法作用样例
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]

  1. start:开始索引,不指定默认为0(第一个元素的索引)
  2. end:结束索引,不指定默认为-1(最后一个元素的索引)
  3. 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()在字符串中查找子串,返回第一次出现的索引位置,找不到返回-1s.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}")
http://www.jsqmd.com/news/1185221/

相关文章:

  • Python五大数据可视化库核心能力与场景选型指南
  • 厦门江诗丹顿回收价格查询与靠谱平台实测排行(2026年7月最新数据) - 诚收名表回收平台
  • 2026直流充电桩测试系统口碑推荐强势出炉,零套路不踩坑,价格透明实力测评看这篇够 - mypinpai
  • C++信号与槽机制:从原理到实现,构建松耦合通信系统
  • 【Self-Consistency 解码策略】从“贪心”到“民主投票”:如何让大语言模型的推理更可靠
  • 2026最新连云港本地漏水检测公司本地精选权威推荐:正规防水补漏公司优选口碑TOP5:卫生间/厨房/阳台/飘窗/地下室渗漏水维修师傅上门 - 即刻修防水
  • 透明化数字孪生与视频融合的核心技术
  • 离线优先策略:PWA与Native的离线缓存机制(152)
  • STM32与光耦TLP241A构建工业级电气隔离系统
  • VC++可视化编程:从设备上下文到文本输出的核心原理与实战
  • C++内存管理实战:智能指针、内存池与泄漏排查全解析
  • 游戏AI实战分析:从职业选手对决看行为树与强化学习局限
  • AI人体关键点检测与实时特效在体能测试中的应用实践
  • I2C,SPI,DAC,看门狗,MODBUS-TCP
  • 2026婚姻介绍机构实力风云榜,零套路不踩坑,备婚新人的明智之选 - mypinpai
  • Spotify AI Agent实践:自动化开发流程提升软件工程效率
  • 多图拼接工具怎么选?2026年最新实用推荐 - 软件工具教程方法
  • springboot家政服务系统81715-计算机课程设计/毕业设计
  • 机器学习核心算法实战解析与典型例题精讲
  • Unity AR跳舞游戏开发全解析:从AR Foundation集成到节奏判定系统实现
  • C++智能指针深度解析:从RAII原理到实战应用
  • WebSocket通信:全平台实时通信方案(153)
  • Python本地部署Whisper实现离线语音识别
  • WinUI3 C++/WinRT DateTime开发实战:数据绑定、时间转换与数据库映射
  • 基于FFT的音频频谱可视化:从原理到C++工程实现
  • Unity运行时调试实战:从自定义面板到Runtime Editor集成
  • 智能床认证厂家口碑排行榜,避坑必看,真实客片测评不花冤枉钱 - mypinpai
  • Unity跨平台文件选择器StandaloneFileBrowser深度排坑指南
  • 零基础学多图拼接:2026年这些免费小程序上手快 - 软件工具教程方法
  • C++ STL vector模拟实现:从三指针模型到迭代器失效的深度解析