04 python学习笔记-函数、函数参数和返回值
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。Python提供了许多内建函数,比如print(),我们也可以自己创建函数,这叫做用户自定义函数。
一、函数定义和调用
1、函数定义:
def 函数名(参数列表):
函数体
示例:
def printme( str ):
#打印传入的字符串到标准显示设备上
print str
return
函数定义的规则:
- 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。
- 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
- 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
- 函数内容以冒号起始,并且缩进。
- return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
2、函数调用
示例:
二、参数和返回值
- 参数支持各种对象,包含数字,字符串,列表,元组,也可以是函数和类
- 必填参数:def add(x,y):
- 默认参数: 默认值参数必须放在必填参数后面, 如```def add(x, y=1, z=2):
- 不定长参数:*args, 如def func(*args)--可以接受任意长度和格式的参数
- 关键字参数:**kwargs,如 def kwfunc(**kwargs): print(kwargs) kwfunc(age='123',name='小黑')
- 函数没有return默认返回None
1、必填参数传参方式
示例:
2、必填、默认、可变、关键字参数传参:
示例1,按序传值,必填参数在默认参数之前:
示例2,字典关键字要与函数参数名对应:
3.参数及其返回值类型注释
def f(x:int, y:int) -> int: # x,y为int型,函数返回为int型,只是注释,参数格式非法不会报错
return x+y
print(f(2,4))
4.函数作为参数
def a():
print('this is a')
def deco(func):
print('call from deco')
func()
deco(a) # 函数作为入参
5.函数嵌套
def a():
a_var = 1
def b:() # 嵌套函数
a_var += 1
6.函数递归
示例,求n!:
def fact(n):
return 1 if n == 0 or n ==1 else n*fact(n-1)
print(fact(4))