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)当把变量传递给函数时,本质上是:传递变量的引用值。

相关推荐
waterHBO25 分钟前
python 爬虫 selenium 笔记
爬虫·python·selenium
编程零零七1 小时前
Python数据分析工具(三):pymssql的用法
开发语言·前端·数据库·python·oracle·数据分析·pymssql
2401_858286112 小时前
52.【C语言】 字符函数和字符串函数(strcat函数)
c语言·开发语言
铁松溜达py2 小时前
编译器/工具链环境:GCC vs LLVM/Clang,MSVCRT vs UCRT
开发语言·网络
everyStudy2 小时前
JavaScript如何判断输入的是空格
开发语言·javascript·ecmascript
AIAdvocate3 小时前
Pandas_数据结构详解
数据结构·python·pandas
小言从不摸鱼3 小时前
【AI大模型】ChatGPT模型原理介绍(下)
人工智能·python·深度学习·机器学习·自然语言处理·chatgpt
C-SDN花园GGbond4 小时前
【探索数据结构与算法】插入排序:原理、实现与分析(图文详解)
c语言·开发语言·数据结构·排序算法
迷迭所归处5 小时前
C++ —— 关于vector
开发语言·c++·算法
架构文摘JGWZ5 小时前
Java 23 的12 个新特性!!
java·开发语言·学习