python基础知识(六)--字典遍历、公共运算符、公共方法、函数、变量分类、参数分类、拆包、引用

字典遍历方法

|----------|-----------------------|
| 函数名 | 含义 |
| keys() | 以列表的形式,返回一个字典所有的键。 |
| values() | 以列表的形式,返回一个字典所有的值。 |
| items() | 返回由键值组成的序列,主要应用于遍历字典。 |

公共运算符

|--------|---------|--------------|
| 运算符 | 描述 | 支持的容器类型 |
| + | 合并 | 字符串、列表、元组 |
| * | 复制 | 字符串、列表、元组 |
| in | 元素是否存在 | 字符串、列表、元组、字典 |
| not in | 元素是否不存在 | 字符串、列表、元组、字典 |

公共方法

能适用于Python容器的一些通用方法

|--------|-------------|
| | 描述 |
| len(s) | 计算容器中的元素总个数 |
| del | 删除 |
| max() | 返回容器中元素最大值 |
| min() | 返回容器中元素最小值 |

函数

语法:

python 复制代码
def 函数名([参数, ..]):
    代码1
    代码2
    ...
    [return 具体的值]

(1)当将一些代码进行封装在一块,并给这块代码取了个名字,就叫做函数;

(2)定义函数时,需要使用(def)关键字。

函数特点:

(1)先定义,后调用;

(2)不调用,不执行;

(3)调用一次,执行一次。

python 复制代码
#定义函数
def 函数名():
   代码1
   代码2
   ...
 #调用函数
 函数名()

函数的参数

当在定义函数时,设定了参数,则可称该函数为:有参函数。反之,没有参数的函数,称为:无参函数。

定义有参数的函数,

语法:

python 复制代码
def 函数名(参数1,参数2,...):  # 形参
    代码1
    代码2
    ...

调用函数,

语法:

python 复制代码
函数名(参数值1,参数值2,...)  # 实参

函数的返回值

函数的返回值指的是:当函数完成一件事情后,最后要返回给函数的结果。

python 复制代码
def 函数名([参数1, 参数2, ...]):
        代码1
        代码2
        ...
        return 值

说明:

(1)若要给函数返回结果,需要使用return关键字;

(2)return关键字的作用:把结果返回给函数;结束函数;

(3)当函数没有返回值时,默认返回None

说明文档

说明文档指的是:在定义函数的第一行,加上多行注释。这样的操作,可以让函数更加规范化。

python 复制代码
def 函数名():
    """ 说明文档的位置 """
    代码
    ...

函数的嵌套调用

函数的嵌套调用指的是:在一个函数中,调用了另一个函数。

嵌套调用语法:

python 复制代码
def 函数1():
        代码
        ...

def 函数2():
        代码
        # 调用函数1
        函数1()
        ...

变量分类

|------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 变量分类 | 特点 |
| 局部变量 | 局部变量只作用于当前所在函数内, 局部变量不能作用在该函数之外的区域。 |
| 全局变量 | 全局变量: (1)全局变量是指与函数处于同一级别的变量; (2)注意:当函数中的局部变量与全局变量同名时,在函数中使用的是局部变量的值。 (1)当要定义一个作用在整个模块的变量时,就可以使用全局变量; (2)注意:当要给全局变量修改值时,需要先使用(global)关键字来声明。 升级: 实际上,对于不可变类型的全局变量要修改值, 需要使用global声明; 但是对于可变类型的数据内容-全局变量, 可以不需要声明. |

参数分类

|-------|-------------------------------------------------------------------------------------------|
| 参数类型 | 特点 |
| 位置参数 | 1)当调用函数时,要按照定义函数时的参数位置,进行传递值。 2)在给位置参数传递值时,要注意参数的(个数)、类型和顺序 |
| 关键字参数 | 1)当传递关键字参数时,可以使用【键 = 值】形式来指定参数; 2)当采用关键字参数传递值时,可以不关注参数的顺序,参数名要正确,参数个数要对应 |
| 缺省参数 | 也叫默认参数: 1)若给函数定义了缺省参数,则在调用函数时可以省略该参数值的传递; 2)缺省参数必须定义在其他参数的最末尾处,可以定义多个缺省参数 |
| 不定长参数 | 也叫可变参数: 1)注意:如果不确定要给函数传递多少个参数值时,可以优先考虑使用(不定长参数) 2)当给不定长参数传递数值时,可以理解为:就是综合运用位置参数和关键字参数来传值。 |

拆包

在Python程序中的拆包:把组合形成的元组形式的数据,拆分出单个元素内容。

python 复制代码
变量名1,变量名2,... = 结果

例如,一起来完成:

(1)在一个函数中,使用return返回求解两个数的和、差;

(2)使用items()方式遍历处理字典中存储的学生信息各个键与值;

(3)分别使用拆包方式来拆分数据。

python 复制代码
# 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)使用拆包方式完成数值交换。

python 复制代码
# 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中,变量值是通过引用来传递的。

查看引用语法:

python 复制代码
id(变量名)

说明:

我们可以把id()值理解为变量所在内存的地址值。

例如,一起来完成:

(1)定义一个变量a,查看变量的引用值;

(2)思考:有两个列表变量[1, 2],分别使用==和is去比较,结果如何?

python 复制代码
# 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)同时输出参数值与在函数内的参数的引用值,对比效果。

python 复制代码
# 1.定义有参数的函数
def func(a):
    print("====================")
    print(f"a的引用值:{id(a)}")
    print("====================")

# 2.外面输出、函数内输出
number = 100
print(id(number))  # 140704783966976
func(number)

==总结:==

(1)当把变量传递给函数时,本质上是:传递变量的引用值。

相关推荐
databook2 小时前
Manim实现闪光轨迹特效
后端·python·动效
Juchecar4 小时前
解惑:NumPy 中 ndarray.ndim 到底是什么?
python
用户8356290780514 小时前
Python 删除 Excel 工作表中的空白行列
后端·python
Json_4 小时前
使用python-fastApi框架开发一个学校宿舍管理系统-前后端分离项目
后端·python·fastapi
数据智能老司机11 小时前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构
数据智能老司机12 小时前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机12 小时前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机12 小时前
精通 Python 设计模式——性能模式
python·设计模式·架构
c8i12 小时前
drf初步梳理
python·django
每日AI新事件12 小时前
python的异步函数
python