一、函数
函数:是组织好的,可重复使用的,用来实现特定功能的代码段。
优点:
- 可供重复利用的代码段
- 提高程序的复用性
- 减少重复性代码
- 提高开发效率
1.定义
def func1():
print("函数")
return 1
注意
参数、返回值可以省略
返回值可以有多个(后续说)
2.参数
- 可以不传参;可以传入多个参数:使用逗号分隔开
- 函数定义中的参数,称之为形式参数
- 函数调用中的参数,称之为实际参数
- 传入参数的时候,要和形式参数一一对应,逗号隔开;也可以以key-value形式传入
3.返回值
返回值可以有多个,也可以返回None
4.说明
def func2():
print("我是一个函数")
return 1
使用时,当鼠标悬浮函数时出现提示
5.嵌套执行
如果函数A中,调用了另外一个函数B,那么先把函数B中的任务都执行完毕之后才会回到上次 函数A执行的位置
6.作用域
变量作用域指的是变量的作用范围
下图num变量为testA()函数的局部变量
使用 global关键字 可以在函数内部声明变量为全局变量
二、数据容器
Python中的数据容器:
一种可以容纳多份数据的数据类型,容纳的每一份数据称之为1个元素
每一个元素,可以是任意类型的数据,如字符串、数字、布尔等。
分为5类,分别是:
列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict)
1.列表序列
基本语法
# 定义变量,内部数据类型可以不同;支持嵌套
list = [1,2,3,"gyb"]
# 空列表
list = []
list = list()
下标索引
1.正常顺序
name_list = ["郜宇博","123", "456"]
# 使用下标索引取出列表内元素
name1 = name_list[0]
print(name1)
2.反向索引,也就是从后向前:从-1开始,依次递减(-1、-2、-3......)
3.嵌套列表(二维)
# 2维嵌套列表
my_list = [[1,2,3],[4,5,6]]
# 获取其中的一个元素
num = my_list[0][0]
常用方法
编号 | 使用方式 | 作用 |
---|---|---|
1 | 列表.append(元素) | 向列表中追加一个元素 |
2 | 列表.extend(容器) | 将数据容器的内容依次取出,追加到列表尾部 |
3 | 列表.insert(下标, 元素) | 在指定下标处,插入指定的元素 |
4 | del 列表[下标] | 删除列表指定下标元素 |
5 | 列表.pop(下标) | 删除列表指定下标元素 |
6 | 列表.remove(元素) | 从前向后,删除此元素第一个匹配项 |
7 | 列表.clear() | 清空列表 |
8 | 列表.count(元素) | 统计此元素在列表中出现的次数 |
9 | 列表.index(元素) | 查找指定元素在列表的下标 找不到报错ValueError |
10 | len(列表) | 统计容器内有多少元素 |
# 举例
# 插入元素:
# 语法:列表.insert(下标, 元素),在指定的下标位置,插入指定的元素
my_list = [1, 2, 3]
# 在第1个索引位,插入0元素
my_list.insert(1,0)
print(my_list)
特点
- 可以容纳多个元素(上限为2**63-1个)
- 可以容纳不同类型的元素(混装)
- 数据是有序存储的(有下标序号)
- 允许重复数据存在
- 可以修改(增加或删除元素等)
2.元组序列
列表是可以修改的。
元组一旦定义完成,就不可修改
基本语法
# 定义元组使用小括号
my_tuple = (1, 2, 3, 4)
# 不同元素类型
my_tuple = (1, "gy")
# 嵌套
my_tuple = ((1,2,3),(4,5,6))
索引方式与列表相同
常用方法
因为不能修改,所以操作少
编号 | 方法 | 作用 |
---|---|---|
1 | index() | 查找某个数据,如果数据存在返回对应的下标,否则报错 |
2 | count() | 统计某个数据在当前元组出现的次数 |
3 | len(元组) | 统计元组内的元素个数 |
注意
不可以修改元组的内容,但是可以修改元组内列表中的元素,如下
# 可以修改列表中元素
my_t = (1, 2, ["gg","cc"])
# 修改
my_t[2][1] = "aa"
print(my_t)
3.字符串序列
同元组一样,字符串是一个:无法修改的数据容器。不可变
因此当修改字符串中字符时,会获得一个新字符串
常用方法
编号 | 操作 | 说明 |
---|---|---|
1 | 字符串[下标] | 根据下标索引取出特定位置字符 |
2 | 字符串.index(字符串) | 查找给定字符的第一个匹配项的下标 |
3 | 字符串.replace(字符串1, 字符串2) | 将字符串内的全部字符串1,替换为字符串2 不会修改原字符串,而是得到一个新的 |
4 | 字符串.split(字符串) | 按照给定字符串,对字符串进行分隔 不会修改原字符串,而是得到一个新的列表 |
5 | 字符串.strip() 字符串.strip(字符串) | 移除首尾的空格和换行符或指定字符串 |
6 | 字符串.count(字符串) | 统计字符串内某字符串的出现次数 |
7 | len(字符串) | 统计字符串的字符个数 |
4.序列的切片
序列是指:内容连续、有序,可使用下标索引的一类数据容器
序列支持切片
切片:从一个序列中,取出一个子序列
语法:序列[起始下标:结束下标:步长] -----》 左闭右开区间
- 起始下标表示从何处开始,可以留空,留空视作从头开始
- 结束下标(不含)表示何处结束,可以留空,留空视作截取到结尾
- 步长表示,依次取元素的间隔
my_list = [1, 2, 3, 4, 5]
new_list = my_list[1:4] # 下标1开始,下标4(不含)结束,步长1
print(new_list) # 结果:[2, 3, 4]
my_tuple = (1, 2, 3, 4, 5)
new_tuple = my_tuple[:] # 从头开始,到最后结束,步长1
print(new_tuple) # 结果:(1, 2, 3, 4, 5)
my_list = [1, 2, 3, 4, 5]
new_list = my_list[::2] # 从头开始,到最后结束,步长2
print(new_list) # 结果:[1, 3, 5]
my_str = "12345"
new_str = my_str[::-1] # 从头(最后)开始,到尾结束,步长-1(倒序)
print(new_str) # 结果:"54321"
5.set集合
列表和元组都支持重复元素,因此需要不支持的容器---》set
最主要的特点就是:不支持元素的重复(自带去重功能)、并且内容无序
定义语法
# 定义
nums = {1,2,3,5,5,2}
print(nums)
常用方法
编号 | 操作 | 说明 |
---|---|---|
1 | 集合.add(元素) | 集合内添加一个元素 |
2 | 集合.remove(元素) |
首页 上一页 1 2 3 下一页 尾页 1/3/3 | |
【大 中 小】【打印】 【繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部】 | |
上一篇:drf接口文档 | 下一篇:django中APIView里的dispatch和as.. |