python基础知识(六)--字典遍历、公共运算符、公共方法、函数、变量分类、参数分类、拆包、引用
字典遍历方法
函数名 | 含义 |
keys() | 以列表的形式,返回一个字典所有的键。 |
values() | 以列表的形式,返回一个字典所有的值。 |
items() | 返回由键值组成的序列,主要应用于遍历字典。 |
公共运算符
运算符 | 描述 | 支持的容器类型 |
+ | 合并 | 字符串、列表、元组 |
* | 复制 | 字符串、列表、元组 |
in | 元素是否存在 | 字符串、列表、元组、字典 |
not in | 元素是否不存在 | 字符串、列表、元组、字典 |
公共方法
能适用于Python容器的一些通用方法
描述 | |
len(s) | 计算容器中的元素总个数 |
del | 删除 |
max() | 返回容器中元素最大值 |
min() | 返回容器中元素最小值 |
函数
语法:
def 函数名([参数, ..]):
代码1
代码2
...
[return 具体的值]
(1)当将一些代码进行封装在一块,并给这块代码取了个名字,就叫做函数;
(2)定义函数时,需要使用(def)关键字。
函数特点:
(1)先定义,后调用;
(2)不调用,不执行;
(3)调用一次,执行一次。
#定义函数
def 函数名():
代码1
代码2
...
#调用函数
函数名()
函数的参数
当在定义函数时,设定了参数,则可称该函数为:有参函数。反之,没有参数的函数,称为:无参函数。
定义有参数的函数,
语法:
def 函数名(参数1,参数2,...): # 形参
代码1
代码2
...
调用函数,
语法:
函数名(参数值1,参数值2,...) # 实参
函数的返回值
函数的返回值指的是:当函数完成一件事情后,最后要返回给函数的结果。
def 函数名([参数1, 参数2, ...]):
代码1
代码2
...
return 值
说明:
(1)若要给函数返回结果,需要使用return关键字;
(2)return关键字的作用:把结果返回给函数;结束函数;
(3)当函数没有返回值时,默认返回None
说明文档
说明文档指的是:在定义函数的第一行,加上多行注释。这样的操作,可以让函数更加规范化。
def 函数名():
""" 说明文档的位置 """
代码
...
函数的嵌套调用
函数的嵌套调用指的是:在一个函数中,调用了另一个函数。
嵌套调用语法:
def 函数1():
代码
...
def 函数2():
代码
# 调用函数1
函数1()
...
变量分类
变量分类 | 特点 |
局部变量 | 局部变量只作用于当前所在函数内, 局部变量不能作用在该函数之外的区域。 |
全局变量 | 全局变量: (1)全局变量是指与函数处于同一级别的变量; (2)注意:当函数中的局部变量与全局变量同名时,在函数中使用的是局部变量的值。 (1)当要定义一个作用在整个模块的变量时,就可以使用全局变量; (2)注意:当要给全局变量修改值时,需要先使用(global)关键字来声明。 升级: 实际上,对于不可变类型的全局变量要修改值, 需要使用global声明; 但是对于可变类型的数据内容-全局变量, 可以不需要声明. |
参数分类
参数类型 | 特点 |
位置参数 | 1)当调用函数时,要按照定义函数时的参数位置,进行传递值。 2)在给位置参数传递值时,要注意参数的(个数)、类型和顺序 |
关键字参数 | 1)当传递关键字参数时,可以使用【键 = 值】形式来指定参数; 2)当采用关键字参数传递值时,可以不关注参数的顺序,参数名要正确,参数个数要对应 |
缺省参数 | 也叫默认参数: 1)若给函数定义了缺省参数,则在调用函数时可以省略该参数值的传递; 2)缺省参数必须定义在其他参数的最末尾处,可以定义多个缺省参数 |
不定长参数 | 也叫可变参数: 1)注意:如果不确定要给函数传递多少个参数值时,可以优先考虑使用(不定长参数) 2)当给不定长参数传递数值时,可以理解为:就是综合运用位置参数和关键字参数来传值。 |
拆包
在Python程序中的拆包:把组合形成的元组形式的数据,拆分出单个元素内容。
变量名1,变量名2,... = 结果
例如,一起来完成:
(1)在一个函数中,使用return返回求解两个数的和、差;
(2)使用items()方式遍历处理字典中存储的学生信息各个键与值;
(3)分别使用拆包方式来拆分数据。
# 1.定义函数, 返回多个数据
def get_sum_sub(a, b):
sum = a + b
sub = a - b
return sum,sub
result = get_sum_sub(560,89)
print(result) # (649, 471)
ret1, ret2 = get_sum_sub(560,89)
print(f"和为:{ret1}")
print(f"差为:{ret2}")
# 2.items()处理
student = {"name": "马云", "age": 28, "gender": "男"}
for key,value in student.items():
print(f"{key} --> {value}")
==总结:==
(1)当要把一个组合的结果快速获取元素数据时,可以使用拆包来完成;
(2)注意:对列表、元组数据结果,都可以使用拆包方式。
交换变量值
使用拆包方式可以用于交换变量的值。
例如,一起来完成:
(1)有变量a、b,请完成变量之间值的交换;
(2)使用引入第三方变量的形式完成数值的交换;
(3)使用拆包方式完成数值交换。
# 1.拆包 -互换两个数位置
a = 10
b = 98
b, a = (a,b)
print(f"变量a={a}, b={b}")
(a,b) = (b,a)
# 2.求最大最小值
data = [12,3,14,56,7,0,1,-199]
data = [12,3,14,56,7,100,1,199]
# 1.先入为主; 2.简化操作
# 最大值
max_value = data[0]
# 最小值
min_value = data[0]
# min_value = 0
for temp in data:
if max_value < temp:
max_value = temp
if min_value > temp:
min_value = temp
print(f"最大值:{max_value}")
print(f"最小值:{min_value}")
==总结:==
(1)交换两个变量的方式较多,但最简单的是:直接使用拆包方式交换值。
引用
引用可以通俗的称为内存地址值。在Python中,引用有两种表现形式:
(1)十进制数 5040624
(2)十六进制数 0x45AC6 [后期讲解]
注意:在Python中,变量值是通过引用来传递的。
查看引用语法:
id(变量名)
说明:
我们可以把id()值理解为变量所在内存的地址值。
例如,一起来完成:
(1)定义一个变量a,查看变量的引用值;
(2)思考:有两个列表变量[1, 2],分别使用==和is去比较,结果如何?
# 1.定义变量,查看引用
a = 10
print(a)
print(id(a)) # 140704783964096
# 明确: 内存地址值是随机分配
# 2.== is
# is比较的是内存地址值
# ==比较内容值
alist = [1,2]
blist = [1,2]
print(alist == blist) # True
print(alist is blist) # False
print(id(alist))
print(id(blist))
==总结:==
(1)当要查看一个变量的内存地址值时,可以使用()函数;==A、id()==;B、position()
(2)注意:比较两个变量的值是否相等时,使用==;比较两个变量的内存地址值是否相同时,使用is关键字。
[了解]把引用当做参数传递
我们知道,当定义函数时设定了参数,则在调用函数时也需要传递参数值。
而实际上,当给函数传递参数时,其本质就是:把引用当做参数进行传递。
例如,一起来完成:
(1)定义有一个参数的函数,并在调用函数时传递一个参数值;
(2)同时输出参数值与在函数内的参数的引用值,对比效果。
# 1.定义有参数的函数
def func(a):
print("====================")
print(f"a的引用值:{id(a)}")
print("====================")
# 2.外面输出、函数内输出
number = 100
print(id(number)) # 140704783966976
func(number)
==总结:==
(1)当把变量传递给函数时,本质上是:传递变量的引用值。
原文地址:https://blog.csdn.net/weixin_58468790/article/details/142291183
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!