1 Python 内置函数
Python 包含了以下内置函数:
函数 | 描述 | 备注 |
---|---|---|
len(item) | 计算容器中元素个数 | |
del(item) | 删除变量 | del 有两种方式 |
max(item) | 返回容器中元素最大值 | 如果是字典,只针对 key 比较 |
min(item) | 返回容器中元素最小值 | 如果是字典,只针对 key 比较 |
cmp(item1, item2) | 比较两个值,-1 小于/0 相等/1 大于 | Python 3.x 取消了 cmp 函数 |
注意
-
字符串 比较符合以下规则: "0" < "A" < "a"
2 切片
描述 | Python 表达式 | 结果 | 支持的数据类型 |
---|---|---|---|
切片 | "0123456789"[::-2] | "97531" | 字符串、列表、元组 |
-
切片 使用 索引值 来限定范围,从一个大的 字符串 中 切出 小的 字符串
-
列表 和 元组 都是 有序 的集合,都能够 通过索引值 获取到对应的数据
-
字典 是一个 无序 的集合,是使用 键值对 保存数据
3 运算符
运算符 | Python 表达式 | 结果 | 描述 | 支持的数据类型 |
---|---|---|---|---|
+ | [1, 2] + [3, 4] | [1, 2, 3, 4] | 合并 | 字符串、列表、元组 |
* | ["Hi!"] * 4 | ['Hi!', 'Hi!', 'Hi!', 'Hi!'] | 重复 | 字符串、列表、元组 |
in | 3 in (1, 2, 3) | True | 元素是否存在 | 字符串、列表、元组、字典 |
not in | 4 not in (1, 2, 3) | True | 元素是否不存在 | 字符串、列表、元组、字典 |
> >= == < <= | (1, 2, 3) < (2, 2, 3) | True | 元素比较 | 字符串、列表、元组 |
注意
-
in
在对 字典 操作时,判断的是 字典的键 -
in
和not in
被称为 成员运算符
成员运算符
成员运算符用于 测试 序列中是否包含指定的 成员
运算符 | 描述 | 实例 |
---|---|---|
in | 如果在指定的序列中找到值返回 True,否则返回 False | 3 in (1, 2, 3) 返回 True |
not in | 如果在指定的序列中没有找到值返回 True,否则返回 False | 3 not in (1, 2, 3) 返回 False |
注意:在对 字典 操作时,判断的是 字典的键
4 完整的 for 循环语法
-
在
Python
中完整的for 循环
的语法如下:
for 变量 in 集合: 循环体代码 else: 没有通过 break 退出循环,循环结束后,会执行的代码
应用场景
-
在 迭代遍历 嵌套的数据类型时,例如 一个列表包含了多个字典
-
需求:要判断 某一个字典中 是否存在 指定的 值
-
如果 存在,提示并且退出循环
-
如果 不存在,在 循环整体结束 后,希望 得到一个统一的提示
-
students = [ {"name": "阿土", "age": 20, "gender": True, "height": 1.7, "weight": 75.0}, {"name": "小美", "age": 19, "gender": False, "height": 1.6, "weight": 45.0}, ] find_name = "阿土" for stu_dict in students: print(stu_dict) # 判断当前遍历的字典中姓名是否为find_name if stu_dict.get('name') == find_name: print("找到了") # 如果已经找到,直接退出循环,就不需要再对后续的数据进行比较 break else: print("没有找到") print("循环结束")
Range
# range()是一个函数,可以用来生成一个自然数的序列 r = range(5) # 生成一个这样的序列[0,1,2,3,4] r = range(0,10,2) r = range(10,0,-1) # 该函数需要三个参数 # 1.起始位置(可以省略,默认是0) # 2.结束位置 # 3.步长(可以省略,默认是1) # print(list(r)) # 通过range()可以创建一个执行指定次数的for循环 # for()循环除了创建方式以外,其余的都和while一样, # 包括else、包括break continue都可以在for循环中使用 # 并且for循环使用也更加简单 # 将之前使用while循环做的练习,再使用for循环完成一次! for i in range(30): print(i) # for s in 'hello': # print(s)
下面着重介绍一下切片
学完感觉类似java的截取
# 切片 # 切片指从现有列表中,获取一个子列表 # 创建一个列表,一般创建列表时,变量的名字会使用复数 stus = ['孙悟空','猪八戒','沙和尚','唐僧','蜘蛛精','白骨精'] # 列表的索引可以是负数 # 如果索引是负数,则从后向前获取元素,-1表示倒数第一个,-2表示倒数第二个 以此类推 print(stus[-2]) # 通过切片来获取指定的元素 # 语法:列表[起始:结束] # 通过切片获取元素时,会包括起始位置的元素,不会包括结束位置的元素 # 做切片操作时,总会返回一个新的列表,不会影响原来的列表 # 起始和结束位置的索引都可以省略不写 # 如果省略结束位置,则会一直截取到最后 # 如果省略起始位置,则会从第一个元素开始截取 # 如果起始位置和结束位置全部省略,则相当于创建了一个列表的副本 print(stus[1:]) print(stus[:3]) print(stus[1:4]) print(stus[1:5:2]) print(stus) # 语法:列表[起始:结束:步长] # 步长表示,每次获取元素的间隔,默认值是1 # print(stus[0:5:3]) # 步长不能是0,但是可以是负数 # print(stus[::0]) ValueError: slice step cannot be zero # 如果是负数,则会从列表的后部向前边取元素 print(stus[::-1]) #字符串可以切片 str = 'hello' print(str) print(str[1:3])
E:PyWorkSpacevenvScriptspython.exe E:/PyWorkSpace/venv/bbb.py 蜘蛛精 ['猪八戒', '沙和尚', '唐僧', '蜘蛛精', '白骨精'] ['孙悟空', '猪八戒', '沙和尚'] ['猪八戒', '沙和尚', '唐僧'] ['猪八戒', '唐僧'] ['孙悟空', '猪八戒', '沙和尚', '唐僧', '蜘蛛精', '白骨精'] ['白骨精', '蜘蛛精', '唐僧', '沙和尚', '猪八戒', '孙悟空'] hello el Process finished with exit code 0