Python day10
Python day10
函数
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
函数能提高应用的模块性,和代码的重复利用率。Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。
定义函数
函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。
任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
函数内容以冒号 : 起始,并且缩进。
return [表达式] 结束函数,选择性地返回一个值给调用方,不带表达式的 return 相当于返回 None。
def 函数名(参数列表):
函数体
函数调用
先通过函数名定位到函数的内存地址
函数内存地址()->触发函数体代码的运行
强调:调用函数才会执行函数体代码
无参函数
def func():
print("123")
print("234")
print("345")
func()#调用无参函数
有参函数的返回值
x = int(input("请输入数字1"))
y = int(input("请输入数字2"))
def addition(a, b):
return a+b
print(addition(x,y))
空函数
主要用于在设计代码结构的时候使编译器不报错
def login():
pass
参数
参数总体分为两大类:
形参:在函数定义阶段括号内指定的参数,称之为形式参数,简称形参-》变量名
实参:在函数调用阶段括号内传入的值,称之为实际参数,简称实参-》变量的值
形参
位置形参:在定义函数时,按照从左到右的顺序依次定义的变量名,称之为位置形参
特点:每次调用,必须被赋值
def func(name,age):
print(name)
print(age)
默认形参:在定义函数时,就已经为某个形参赋值了,称之为默认形参
特点:调用函数时,可以不用为其赋值
def func(name,age=18):
print(name)
print(age)
func("zhangsan")
func("zhangsan",19)
注意! 位置形参与默认形参可以混用,但是
1、位置形参必须在前面
2、默认形参的值通常应该是不可变类型
3、默认形参的值是在函数定义阶段赋值的
实参
位置实参:在调用函数时,按照从左到右的顺序依次传入的值,称之为位置实参
特点:按照位置为形参赋值,一一对应
def func(name,age):
print(name)
print(age)
func("zhangsan",18)
关键字实参:在调用函数时,按照key=value的形式传值,称之为关键字实参
特点:可以打乱顺序,但是仍然能够指定道姓地为指定的形参赋值
def func(age, name):
print(name)
print(age)
func(name="zhangsan", age= 18)
注意!位置实参与关键字实参可以混用,但是位置实参必须在关键字实参的前面,且不能为同一形参重复赋值。
可变长参数
可变长参数指的是在调用函数时,传入的实参个数不固定,对应着必须有特殊形式的形参来接收溢出的实参
实参接收有两种方法
溢出的位置实参—>*
溢出的位置关键字实参—>**
*在形参中的应用:*会将溢出的位置实参合并成一个元组,然后赋值给紧跟其后的那个形参名
def func(x,*args):
print(x)#1
print(args)# (2,3,4,5)
func(1,2,3,4,5)
**在形参中的应用:**会将溢出的关键字实参合并成一个字典,然后赋值给紧跟其后的那个形参名
def func(x,**y):
print(x)#1
print(kwargs)# {"a":2,"c":4,"b":3}
func(1,a=2,b=3,c=4)
*在实参中的应用:*后可以跟可以被for循环遍历的任意类型,*会将紧跟其后的那个值打散成位置实参
def func(x,y,z):
print(x)#11
print(y)#22
print(z)#33
func(*[11,22,33])
**在实参中的应用:**只能跟字典类型,**会将字典打散成关键字实参
def func(name,age,sex):
print(name)#zhangsan
print(age)#18
print(sex)#man
func(**{"name":"zhangsan","sex":"man","age":18})
命名关键字形参: 在*与**中间的形参称之为命名关键字形参
特点: 必须按照key=value的形式传值
def func(x,m=333,*args,y=222,z,**kwargs):
print(x)#1
print(m)#2
print(args)#(3,)
print(y)#222
print(z)#4
print(kwargs)#{'a': 1, 'b': 2, 'c': 3}
func(1,2,3,z=4,a=1,b=2,c=3)
上一篇: python day2