Python学习笔记
**
目录
一、函数
1.引入
2.函数的定义
3.函数的格式
4.定义带有参数的函数
5.定义带返回值的函数
二、函数的参数
1.位置参数
2.关键字参数
3.默认参数
4.可变参数
(1)元组参数
(2)字典参数
三、函数文档注释
四、函数的嵌套及其调用
1.函数的嵌套
2.函数之间的调用
五、递归函数
一、函数
1.引用
如果要计算三个不同半径的圆的面积我们可以这么写:
r1=1
r2=2
r3=3
# 1.求r1的面积
s1=3.14 * r1 * r ** 2
print(s1)
s1=3.14 * r2 * r ** 2
print(s2)
s1=3.14 * r3 * r ** 2
print(s3)
为省去中间重复部分,我们可以使用函数来简化这一过程。
2.函数的定义
函数是组织好的,可重复使用的,用来实现独立功能的代码段。
函数可以提高程序代码的重用率。
3.函数的格式
不带参数和返回值函数 | def 函数名():…代码… |
---|---|
带参数的函数 | def 函数名(参数1,参数2,…):…代码… |
-带参数和返回值函数- | -def 函数名(参数1,参数2,…):…代码…return 值- |
注意
(1).函数名称必须遵循 标识符 规则 数字,字母,下划线,并且不能以数 字开头,不能使用关键字。
(2).函数先定义后调用。
(3).函数不调用是不执行的。
(4).函数可以调用多次
2.调用函数
def area():
s = 3.14 * 3 ** 2
print(s)
# 调用函数
area()
3.函数的本质
‘函数的本质是函数名对应的内存地址’
4.定义带有参数的函数
带参数的函数 | def函数名(参数1,参数2,…)代码 |
---|---|
注意:.
(1)调用的时候,这个函数定义时有几个参数,就需要传递几个参数
参数值和参数名称是按函数声明中定义的的顺序匹配起来的。
(2)定义时小括号中的参数,用来接收参数用的,称为 “形参”
调用时小括号中的参数,用来传递给函数用的,称为 “实参”
5.定义带返回值的函数
所谓“返回值”,就是程序中函数完成的最后一件事后,最后给调用者的结果。调用者需根据返回值做不同的操作。
(1).返回多个值
返回多值其实就是返回一个tupe,在语法上返回一个tupe可以省略括号。
二、函数的参数
在python中函数参数的定义方式有一下4中方式。
1)位置参数
2)关键字参数:
3)默认参数:
4)可变参数(*args,**kwargs):
1.位置参数
def sum_2_num(num1,num2):
total = num1 + num2
print(total)
sum_2_sum(20,32)
2.关键字参数
# 3.关键字传递参数
def sum_2_num(num1,num2):
total = num1 + num2
print(total)
sum_2_num(num = 2,num1 = 32)
注意:关键字参数和位置参数同时使用时,关键字参数必须在位置参数后面定义。
def sum_num(num1,num2):
print(num1,num2)
# 注意关键字参数必须在位置参数后面
sun_num(20,num=10)
sum_num(num1=20,10)# 报错
3.默认参数
是在我们定义参数时候,我们给形参一个默认值,在我们调用函数的时候,如果不给有默认值的形参传参,会自动采用默认值。
当某个值变化小的时候,我们就可以使用默认参数。
4.可变参数
如果函数中的参数过多,我们定义起来非常的麻烦,调用起来也非常的麻烦,因此python给我们提供了可变参数类型。能处理比当初声明时更多的参数,会将传入的参数变成元组(*args)或者字典(**kwargs)
(1)元组参数
通过给形参前面添加*使参数变成一个元组,所有传递的参数变成元组的元素
注意: args参数名称可以任意命名,但是一般我们叫他 args。
#6.元组参数
def func(*args):
print(args):
print(args[0],args[1]) # 获取元组中的元素
func(1,2,3,4)
#7.具有打散序列的功能
tup = (1,2,3,4)
print(*tup)
lst = [1,2,3,4]
print(*lst)
s1 = 'hello'
print(*s1)
(2)字典参数
通过给形参前面添加**使参数变成一个字典,所有传递的参数变成字典的键值对,这里传参要求键等于值的形式。
**kwargs结果类型是字典,传递值是以key=value方式传入
def func(**kwargs):
print(kwargs)
print(kwargs['name'],kwargs['age'],kwargs['gender'])
func(name='zs',age=10,gender='男')
# 具有打散字典的功能
def func(name='zs',age=10):
print(name,age)
dic = {'name':'赵四','age':30}
func(**dic)
注意事项:**kwargs必须放在*args后面。
函数参数总结:
定义函数时参数的顺序: 位置参数,元组参数,默认参数,字典参数。
三、函数文档注释
在 函数的内部,使用 “”” 进行文档说明 “””
快速查看函数文档内容 快捷键 ctrl + q
四、函数的嵌套及其调用
1.函数的嵌套
def outter():
print('aaa')
def inner():
print('bbb')
inner() # 调用内部函数
outter()
2.函数之间的调用
def func():
print('func...')
def func2():
func1()
print('func2....')
func2()
五、递归函数
如果一个函数在内部调用自身本身,这个函数就是递归函数。
使用递归函数的条件:
1.必须留出口
2.自己调用自己