1.列表
变量类型
Python 中数据类型可以分为数字型和⾮数字型
- 数字型
- 整型(int)
- 浮点型(float)
- 布尔型(bool)
- 非数字型
- 列表
- 元组
- 集合
- 字典
- 字符串
在Python中,所有非数字型变量都支持以下特点:
- 都是一个序列
- 通过 变量名[索引] 方式取值
- 通过 for in 遍历
- 可以计算长度、最大和最小值
列表介绍
List(列表)是Python中最频繁使用的数据类型,功能类似于其他编程语言中的 数组
,专门用于按顺序存储一系列数据。
-
列表用[]定义, 列表中的数据之间使用
,
进行分隔 -
列表的索引从0开始
-
索引就是数据在列表中的位置编号,索引又可以称为下标
-
注意:从列表中取值时,如果超出索引范围程序会报错。
一、查看列表所有方法
list = ["test01","test02","test03"]
print(dir(list))
二、列表常⽤方法
三、循环遍历列表
遍历就是从头到尾依次从列表中获取数据
使用 for 循环遍历计算列表中一共有多少数字
list1 = [0, 3, 3, 9, 10 ,3 ,5]
count = 0
for i in list1:
if isinstance(i,int):
count += 1
print(count)
计算列表中所有数字相加的总和
list1 = [0, 3, 3, 9, 10 ,3 ,5]
sum = 0
for i in list1:
sum += i
print(sum)
在Python中,可以使用for循环遍历所有非数字类型的变量,包括列表、元组、字典以及字符串
四、拆包
- 拆包就是把一个列表中每个值拆出来
- 拆包操作同样适用于元组、集合和字典
# 定义一个列表
list1 = ["test01",10,1.1]
# 通过对列表进行拆包方式获取列表中每个元素的值
a,b,c = list1
print(a,b,c)
五、列表推导式
- 所谓的列表推导式,就是指轻量级的循环创建列表的方法
- 基本的方式
# a 的内容为[0, 1, 2, 3]
a = [x for x in range(4)]
# a 的内容为[2, 3]
a = [x for x in range(2,4)]
# a 的内容为[3, 5, 7, 9]
a = [x for x in range(3,10,2)]
- 在推导过程中使用if
# a 的内容为[4, 6, 8]
a = [x for x in range(4,9) if x%2 == 0]
# a 的内容为[3, 5, 7, 9]
a = [x for x in range(3,10) if x%2 != 0]
公共方法
- 练习
定义一个列表变量,内容如下:
["张飞", "刘备", "关羽", "刘邦", "刘老二" ,"曹操" ]
查找列表中是否有刘备,如果有将其删除
list = ["张飞", "刘备", "关羽", "刘邦", "刘老二" ,"曹操" ]
if "刘备" in list:
list.remove("刘备")
- 练习
定义一个列表变量,内容如下
[3, 5, 67, 2, 34, 12, 5, 11]
显示列表中最大值
list = [3, 5, 67, 2, 34, 12, 5, 11]
print(max(list))
2.元组
-
Tuple(元组)与列表类似,不同之处在于元组的元素不能修改;
-
元组⽤ () 定义
# 定义一个元组,名字叫 tuple1,有三个元素
tuple1 = ("孙策", 28, 1.75)
# 定义一个空元组,名字叫 tuple2
tuple2 = ()
#元组只有一个元素时,元素后面需要添加逗号
tuple3 = (50,)
#定义元组时, ()可以省略
tuple4 = "张飞",29
tuple5 = 39,
一、元组的常用方法
元组的常用方法与列表类似,元组的内容不可修改,所以没有增加、修改和删除相关方法。
二、循环遍历元组
与遍历列表类似
三、元组和列表之间的转换
- 把列表转化为元组目的是让列表不可以被修改,以保护数据安全
- 使⽤ list 函数可以把元组转换成列表
- 使用tuple函数可以把列表转换成元组
list1 = ["刘备","关羽","张飞"]
# 通过 tuple 函数把 list1 转换为元组
tuple1 = tuple(list1)
tuple2 = ("孙权","周瑜","鲁肃")
# 通过 list 函数把 tuple2 转换为列表
list2 = list(tuple2)
1.练习
list1 = ["刘备","关羽","张飞"]
tuple1 = ("曹操", "周瑜")
将元组 tuple1 的元素追加到 list1 元素后面
list1 = ["刘备","关羽","张飞"]
tuple1 = ("曹操", "周瑜")
list1.extend(tuple1)
print(list1)
3.集合
-
集合用{}定义
- 创建空集合 变量名 = set()
set1 = set()
-
集合和列表的区别:
-
列表是有序的对象集合,即元素的存储顺序和插入顺序一致,且每个元素都有明确的位置(索引)
-
集合是无序的对象集合
-
同一个集合内值不允许重复
-
一、集合常用操作
1.练习
定义一个空集合变量,通过 input 函数,向集合里输入任意 5 个整数
显示集合中的最小值
demo_set = {int(input())for _ in range(5)}
print(min(demo_set))
二、循环遍历集合
遍历就是依次从集合中获取所有值
set1 = {"张飞", 33, 1.75}
for n in set1:
print(n)
1.练习
定义一个空集合变量,通过 input 函数,向集合里输入任意 3 个字符串
遍历集合,显示集合中所有的字符串
demo_set = {input() for _ in range(3)}
print("".join(demo_set))
4.字典
-
dictionary(字典)通常用于存储"键值对"数据, 键与值之间用冒号分隔
- 键key是索引,同一个字典内,键名不能重复
- value是数据
-
字典用
{}
定义- 通过
变量名
={}
创建一个空字典
#空字典 dict1 = {}
- 通过
-
字典与集合的区别
- 集合中只有值
- 字典是包含键与值的键值对
# 定义一个字典,包含两个键值对 dict1 = {"name":"灯火阑珊","age":18}
一、字典常用操作
1.练习
dict1 = {"name":"周瑜","age":32,"id":"001"}
字典中增加一个键值对’sex’:’男’;
删除键’id’;
将键’age’的值修改为 26。
dict1 = {"name":"周瑜","age":32,"id":"001"}
dict1["sex"]="男"
dict1.pop("id")
dict1["age"]=26
二、循环遍历字典
遍历就是依次从字典中获取所有键值对
# 定义一个字典 dict1,包含三个键值对
dict1 = {"name":"刘备", "age":32, "height":1.75}
# n 为键,通过 dict1[n]可以得到键对应的值
for n in dict1:
print("键=%s,值=%s" %(n,str(dict1[n])))
三、循环遍历字典二----拆包方式
- items方法返回包含字典键值对的元组
- 通过对元组拆包的方式获取键和值
dict1 = {"name":"刘备", "age":32, "height":1.75}
for key,value in dict1.items():
print(f"key={key},value={value}")
1.练习
dict1 = {"a":23,"b":4,"c":9,"d":3,"e":12}
循环遍历字典, 显示字典每个键和键对应的值
dict1 = {"a":23,"b":4,"c":9,"d":3,"e":12}
for key,value in dict1.items():
print(f"key:{key},value:{value}")
5.字符串
字符串就是一串字符,是编程语言中表示文本的数据类型
在Python中可以使用一对双引号"
或一对单引号'
定义一个字符串
一、遍历字符串中每个字符
可以使⽤ for 循环遍历 字符串中每⼀个字符
str1 = "灯火阑珊BLOG"
for n in str1:
print(n)
二、字符串的常⽤方法
1.练习
通过 input 函数,输入一个字符串,判断字符串是否可以转化为整数,如果不可以转化, 显示"请输入数字"
str1 = input()
try:
num = int(str1)
print(f"字符串{str1}可以转换为整数{num}")
except:
print("请输入数字")
三、格式化字符串
%
被称为格式化操作符,专门用于处理字符串中的格式
包含%
的字符串,被称为格式化字符串
1.练习
id = 1
name = "刘备"
weight = 80.2
tel = "13912345678"
以上变量,输出结果如下
id = 1
name = "刘备"
weight = 80.2
tel = "13912345678"
print('*'*20)
print(f"编号:{id:06d}")
print(f"姓名:{name}")
print(f"体重:{weight:.3f}")
print(f"电话:{tel}")
print('*'*20)
6.字符串的切⽚
切⽚⽅法适⽤于字符串、列表、元组 ;
切片使用索引值来限定范围,从一个大的字符串切出小的字符串
字符串、列表、元组都是有序的集合,都能通过[索引]获取对应的数据
一、切片语法
字符串[开始索引:结束索引:步长]
从头开始,开始索引数字可以省略,冒号不能省略
到末尾结束,结束索引数字可以省略,冒号不能省略
- 索引的顺序和倒序
在 Python 中不仅⽀持顺序索引,同时还⽀持倒序索引
所谓倒序索引就是从右向左计算索引
str1 = "Hello"
reverse_str = str1[::-1]
print(reverse_str)
章节练习题
1.定义一个列表,内容为 "刘备", "男", 30
-
在列表最后添加元素”玄德”
-
在列表开始插入元素”100”
-
删除元素”男”
-
将列表所有元素反转
-
循环遍历列表中每个元素
list = ["刘备", "男", 30]
list.append("玄德")
list.insert(0,100)
list.remove("男")
list.reverse()
for x in range(len(list)):
print(list[x])
2.通过列表推导式,生成一个包含从30到99之间所有整数的列表
x = [x for x in range(30,100)]
3.定义一个元组变量,内容为("张飞",12,15). 将元组转化为列表后, ”张飞”修改为”关羽”
tuple = ("张飞",12,15)
list = list(tuple)
list[list.index("张飞")] = "关羽"
print(list)
4.定义一个集合变量,内容为{"曹操", "刘备", 100} . 向集合中添加元素”诸葛亮”,删除元素”刘备”,并循环遍历集合,显示集合中每个元素
demo = {"曹操", "刘备", 100}
demo.add("诸葛亮")
demo.remove("刘备")
for item in demo:
print(item)
5.定义一个字典变量,内容为{"id":10, "name":"周瑜", "age":30}.
添加键值对”sex”:”男”,
将age的值修改为25,
遍历显示字典中所有的键和值
demo = {"id":10, "name":"周瑜", "age":30}
demo["sex"]="男"
demo["age"]=25
for key,value in demo.items():
print(f"key={key},value={value}")
5.判断 "gongfuxong@itcast.cn" 字符串是否包含字符@
str = "gongfuxong@itcast.cn"
if "@" in str:
print("hello")
6.将字符串"helloWorld" 中的 "World" 更改为 "Apple"
original_str = "helloWorld"
print(original_str.replace("World","Apple"))
7.将字符串 "abEsaAuY" 中的大小写字母反转
str1 = "abEsaAuY"
print(str1.swapcase())
8.计算字符串 "9*7+12-5" 的计算结果
str = "9*7+12-5"
print(eval(str))