「关注我,和我一起放下灵魂,让灵魂去搬砖。」
Python函数
Python版本3.8.0,开发工具:Pycharm
Python函数
> Python提供了许多内建函数,例如print()
> 开发人员可以自己创建函数,这类函数叫用户自定义函数
- 输入 —— 即,它能接收外部通过参数传递的值
- 处理 —— 即,内部有能够完成某一特定任务的代码;尤其是,它可以根据 “输入” 得到 “输出”;
- 输出 —— 即,它能向外部输送返回值……
Python内建函数
什么是内置函数? 就是python给你提供的. 拿来直接⽤的函数, 比如print, input等等
# Python官方文档中print函数
print(*object, sep=' ', end='\n', file=sys.stdout, flush=False)
# 解释 = 的参数。对参数不了解的可以先往下看参数介绍
- sep=' ':接收多个参数之后,输出时,分隔符号默认为空格,' ';
- end='\n':输出行的末尾默认是换行符号 '\n';
- file=sys.stdout:默认的输出对象是sys.stdout(即,用户正在使用的屏幕)……
即:print个函数中有若干个具有默认值的参数,即便我们在调用这个函数的时候,就算没有指定它们,它们也存在于此。
# 调用print函数
print('Hello', 'world!')
# 等价于调用
print('Hello', 'world!', sep=' ', end='\n', file=sys.stdout, flush=False)
Python自定义函数
> 函数代码块以def关键词开头,后接函数名称和圆括号 ()。
> 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
> 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
> 函数内容以冒号起始,并且缩进。
> return [表达式]结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
def 函数名(参数列表):
函数体
return 返回值
- 关于函数名称:
1. 名称不能以数字开头。能用在名称开头的有,大小写字母和下划线 _;
2. 名称中不能有空格,要么使用下划线连接词汇,如:do_nothing,要么使用驼峰标识,如 :doNothing。推荐使用下划线do_nothing
3. 名称不能与关键字重合
# 列出所有关键字
keyword.kwlist
创建一个自定义函数
# 定义函数
def printme( str ):
# 打印任何传入的字符串
print (str)
return
# 调用函数
printme("我要调用用户自定义函数!")
printme("再次调用同一函数")
# 输出
我要调用用户自定义函数!
再次调用同一函数
Python函数参数
-
必需参数
必需参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。
# 我是函数说明 def print_str(str): "打印传入的字符串" print(str) return # 调用 print_str 函数 print_str("我是知秋小梦") # 输出 我是知秋小梦
-
关键字参数
关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值。
# # 我是函数说明 def print_str(str): "打印传入的字符串" print(str) return # 调用 print_str 函数, print_str(str = "我是参数") # 输出: 我是参数
-
默认参数
调用函数时,如果没有传递参数,则会使用默认参数。
# 我是函数说明 def printinfo( name, age = 35 ): "打印传入的字符串" print ("名字: ", name) print ("年龄: ", age) return #调用printinfo函数 printinfo(age=50, name="zhangsan" ) print("------------------------") printinfo(name="lisi" ) # 输出: 名字: zhangsan 年龄: 50 ------------------------ 名字: lisi 年龄: 35
-
不定长参数
一个函数能处理比当初声明时更多的参数,这些参数叫做不定长参数
#我是函数说明 def printinfo(arg1, *vartuple ): "打印传入的参数" print (arg1) print (vartuple) # 调用printinfo 函数 printinfo( 70, 60, 50 ) # 输出: 70 (60, 50)
匿名函数
python 使用 lambda 来创建匿名函数。
lambda [arg1 [,arg2,…argn]]:expression
注:
- lambda 只是一个表达式,函数体比 def 简单很多。
- lambda的主体是一个表达式,而不是一个代码块。
- lambda 函数拥有自己的命名空间,且不能访问自己参数列表之外或全局命名空间里的参数。
# lambda 的语法结构
lambda_expr ::= "lambda" [parameter_list] ":" expression
# 下面是用 lambda 关键字写函数:
add = lambda x, y: x + y
add(3, 5)
# 等价于自定义函数
def add(x, y):
return x + y
add(3, 5)
# lambda使用场景
a_list = [1, 2, 3, 4, 5, 6]
a_list
b_list = list(map(lambda x: x * 2, a_list))
b_list
# 输出:
[1, 2, 3, 4, 5, 6]
[2, 4, 6, 8, 10, 12]
函数中注意参数和返回值,额外需要注意自定义函数名称不能与关键字相同,且Python函数可以返回多个不同类型的值。函数的使用可以减少很多重复代码,注意活学活用!
下节将介绍Python文件
Python系列
Python系列会持续更新,从基础入门到进阶技巧,从编程语法到项目实战。若您在阅读的过程中发现文章存在错误,烦请指正,非常感谢;若您在阅读的过程中能有所收获,欢迎一起分享交流。
如果你也想和我一起学习Python,可以关注我的微信公众号
学习Python,我们不只是说说而已