函数
- 函数是代码的一种组织形式
- 有些语言,分函数和过程两个概念,通俗解释是,又返回结果的叫函数,无返回结果的叫过程,python中不加以区分
- 函数的使用:
- 函数的使用需要先定义
- 使用函数,俗称调用 *
- 定义
- def关键字,后跟一个空格
- 函数名,自己定义,起名需要遵循变量命名规则,见名知意,约定俗成,大驼峰命名只给类用
- 后面括号和冒号不能省,括号内可以有参数
- 函数内的所有代码要缩进
- 案例
# 函数
def func():
print("Hello World")
func()
结果
Hello World
函数的参数和返回值
- 参数:负责给函数传递一些必要的数据或者信息
- 形参(形式参数):在函数定义的时候用到的参数,没有具体值,只是一个占位符号
- 实参(实际参数):在调用函数的时候输入的具体值
- 返回值:调用函数的时候的一个执行结果
- 返回值是可选的,可以有也可以没有,要根据实际情况
- 强烈推荐要使用返回值,就算没有也要返回一个None,使用return None表示函数结束
- 使用return 返回结果
- 函数一旦执行return,则函数立即结束
- 如果函数没有return关键字,则函数默认返回None
- 案例
#形参和实参
#person即为形参
def hello(person):
print("{0},你要去哪里?".format(person))
print("{0},你吃过饭了吗?".format(person))
return None
#p是实参
p="老王"
hello(p)
结果
老王,你要去哪里?
老王,你吃过饭了吗?
# 函数的值就是这个函数的返回值
pp = hello(p)
print(pp)
结果
小明,你好吗?
小明,你看到我家的baby了吗?
None
函数小案例:
# 九九乘法表
for i in range(1,10):#控制外循环,从1-9
for j in range(1,i + 1):
print("{0}*{1}={2}".format(j,i,i*j),end="\t")
print()
结果
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
help
- help负责随时为你提供帮助
案例:
# help
help(print)
help(None)# 相当于help(print()),想想为什么?
结果
Help on built-in function print in module builtins:
print(...)
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
Prints the values to a stream, or to sys.stdout by default.
Optional keyword arguments:
file: a file-like object (stream); defaults to the current sys.stdout.
sep: string inserted between values, default a space.
end: string appended after the last value, default a newline.
flush: whether to forcibly flush the stream.
参数详解
- 参数分类
- 普通参数/位置参数:通过位置识别的参数
- 默认参数
- 关键字参数
- 收集参数
- 案例
# 普通参数案例
def normal_para(one,two,three):
print(one + two)
return None
normal_para(1,2,3)
结果
3
# 默认参数
# 如果不进行定义,three默认赋值为100
def default_para(one,two,three=100):
print(one+two+three)
return None
default_para(1,2)
default_para(1,2,3)
结果
103
6
# 关键字参数
# 参数名 = 值 的方式可以精确赋值给参数而不需要知道其定义时的位置
def keys_para(one,two,three):
print(one + two)
print(three)
return None
keys_para(one=1,two=2,three=3)
keys_para(two=2,three=3,one=1)
结果
3
3
3
3
收集参数