函数
一、介绍
把具有独立功能的代码块组织为一个小模块,在需要的时候调用
作用:对具备相同逻辑的代码进行封装,提高代码编写效率,实现对代码的利用
好处:减少代码冗余,提高代码运行效率
函数必须先定义,后调用
二、函数的文档注释
作用:对函数的作用和使用方法进行说明,比如有哪些参数、返回值等
书写位置:在def 下方,使用三对引号来书写
查看:1在函数名上,使用快捷键ctrl + q 查看。2、在函数名上,使用 Ctrl + B 跳转到函数定义的地方查看。 3、直接在函数上按 ctrl 键查看
三、定义带参数的函数
1、例子
def sun_num(a,b): c = a + b print(c) sun_num(10,20)
四、函数的嵌套调用
1、在一个函数里面去调用另一个函数
def func(): print("我是函数一") def func1(): print("我先执行") print("我是函数二") func() func1()
五、函数的返回值
1、函数执行的结果
在一个函数中,想要返回一个数据(想要有返回值),需要使用 return 关键字
在函数中可能通过各种代码,得到的数据结果,想要在函数外部使用,就需要使用其返回值。执行到返回值就会停止
#设计一个函数,获取里面较大的数 def func(a,b): if a > b : return a else: return b print(func(10,20))
六、模块和包
1、模块
每一个以 “.py ” 结尾的python代码文件都是一个模块
在模块中,别人书写好的功能,我们可以拿过来直接使用
2、导入
1、import 模块名
2、from 模块名 import 功能名 (导入指定功能)
#方式一 import random s = random.randint(1,10) print(s) #方式二 from random import randint s1 = randint(1,5) print(s1)
3、导入模块时,会执行模块中的代码
如果在导入模块的时候,模块中的部分代码不行被执行,可以使用 __name__ 来解决,此变量是Python解释器里内置的变量
在模块中,右键直接运行代码文件, __name__ 变量的值是 __main__
如果是被导入运行代码文件, __name__变量的值 是 模块名(文件名)
如果不想执行导入模块的代码;就可把代码写在:if __name__ == "__main__":下面。
def num(a,b): c = a + b return c print(num(10,20),__name__) 结果为:30 __main__
4、包:将多个模块放在一个目录中集中管理,并在这个包中创建一个__init__.py文件(可以什么都不写),就是一个包
导入
1、import 包名 . 模块名 (使用:包名 . 模块名 . 工具名)
2、from 包名 import 模块名 (使用:模块名 . 工具名)
3、import 包名 . 模块名 import 工具名 (工具名)
七、变量的类型
1、引用
定义变量的时候,变量和数据 都会在内存开辟空间
变量所对用的内存空间中存储的是 数据所在的内存地址
变量中保存数据地址,就称为地址,Python中所有数据的传递,传递都是引用(即地址)
赋值运算符(=),会改变变量的引用。即只有等号修改变量的引用
可以使用 id 查看变量的引用
a = 1 #本质,是将数据1 的地址保存到变量a 中, b = a #本质,将变量a 中的引用保存到 b 中, #此时a,b的 id 是一样的 a = 2 #将数据2的地址保存到变量a中,只改变a的引用,即改变a的值,并不改变b的引用 print(a) 2 print(b) 1
2、可变类型与不可变类型
根据内存中的数据是否允许修改,将数据类型分为可变类型和不可变类型(简单理解:不使用等号修改数据类型)
可变:列表、字典、集合
不可变:字符串、数字(int,float,bool)、元组
3、局部变量和全局变量
局部变量:在函数内部定义的变量
只能在当前函数内部使用,且可以在不同函数定义名字相同的局部变量,
生命周期:在函数执行的时候才被创建,函数执行结束就会被删除
想要在函数外部使用:则需要使用return值
全局变量:在函数外部定义的变量
可以在任意函数内访问
想要在函数内部修改全局变量的引用,需要使用 global 关键字声明
如果在函数内部出现和全局变量一样的变量名,在函数内部使用的是局部变量
生命周期:代码执行的时候创建,执行结束销毁
g_num = 10 def func1(): print(g_num) #使用全局变量 def func2(): g_num = 20 #定义局部变量 print(g_num) def func3(): global g_num #声明为全局变量 ,只要执行了这个函数,那么就会将全局变量改为30 g_num = 30 print(g_num) if __name__ == "__main__": print(g_num) #10 func1() #10 func2() #20 func3() #30 func1() #30