函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。
1.定义一个函数
你可以定义一个由自己想要功能的函数,以下是简单的规则:
- 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号**()**。
- 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
- 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
- 函数内容以冒号起始,并且缩进。
- return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
语法:
def functionname( parameters ): "函数_文档字符串" function_suite return [expression]
实例:
def Print_Str(str): "打印传入的字符" print(str) return
2. 函数调用
定义一个函数只给了函数一个名称,指定了函数里包含的参数,和代码块结构。
这个函数的基本结构完成以后,你可以通过另一个函数调用执行,也可以直接从Python提示符执行。
def Print_Str(str): "打印传入的字符" print(str) return str = "人生苦短,我用python" Print_Str(str)
3.函数传参
3.1 形参与实参一一对应
def fun1(name,age): print(f"姓名:{name},年龄:{age}") fun1("shichengfu",18)
3.2可变参数
可变参数就是传入的参数个数是可变的,可以是1个、2个到任意个,还可以是0个,*args将所有的实参的位置参数聚合到一个元组,并将这个元组赋值给args。
def fun1(l): num = 0 for n in l: num += n return num sum = fun1([1,2,3]) print(sum)
3.3 关键字参数
关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict,在传递参数时用等号(=)连接键和值
def person_info(name, age, **kw): print("name", name, "age", age, "other", kw) >>> person_info("zhulang", 12) name zhulang age 12 other{} >>> person_info("zhulang", 27, city = "Beijing") name zhulang age 27 other {'city':'Beijing'}