函数
- 函数是代码的一种组织形式
- 函数应该能完成一项特定的工作,而且一般一个函数完成一项工作
- 有些语言,分函数喝过两个概念,通俗解释是,有返回结果的叫函数,无返回结果的叫过程,python不加以区分
- 函数的使用
- 函数使用需要先定义
- 使用函数,俗称调用
# 定义一个函数
# 只是定义的话不会执行
# 1.def关键字,后跟一个空格
# 2.函数名,自己定义,起名需要遵循便令命名规则,约定俗成,大驼峰命名只给类用
# 3.后面括号和冒号不能省,括号内可以有参数
# 4.函数内所有代码缩进
def func():
print("我是一个函数")
print("爱生活")
print("这里不属于函数")
这里不属于函数
# 函数的调用
# 直接写出函数名字,后面小括号不能省略,括号内内容根据情况
func()
我是一个函数
爱生活
# 函数定义
def func():
print("这是事实吗")
print("是的")
func()
我是一个函数
爱生活
函数的参数和返回值
- 参数:负责给函数传递一些必要的数据或者信息
- 形参(形式参数):在函数定义的时候用到的参数,没有具体值,只是一个占位符号
- 实参(实际参数):再调用函数的时候输入的值
- 返回值: 调用函数的时候的一个执行结果
- 使用return返回结果
- 如果没有值需要返回,我们推荐使用return None表示函数结束
- 函数一旦执行return,则函数立即结束
- 如果函数没有return关键字,则函数默认返回None
# 形参和实参的案例
# 参数person只是一个符号
# 调用的时候用另一个
def hello(person):
print("{0},你好吗?".format(person))
print("{},你看见我了吗?".format(person))
p = "小明"
# 调用函数,需要把P作为实参传入
hello(p)
小明,你好吗?
小明,你看见我了吗?
pp = hello("坡哥")
print(pp)
坡哥,你好吗?
坡哥,你看见我了吗?
None
# 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.
# 九九乘法表
for o in range(1,10): #控制外循环,从1到9
for i in range(1,o + 1): #内循环,每次从第一个数字开始,打印到跟行数相同的数量
print(o*i,end=" ")
print()
1
2 4
3 6 9
4 8 12 16
5 10 15 20 25
6 12 18 24 30 36
7 14 21 28 35 42 49
8 16 24 32 40 48 56 64
9 18 27 36 45 54 63 72 81
# 尝试用函数来打印九九乘法表
def jiujiu():
for o in range(1,10): #控制外循环,从1到9
for i in range(1,o + 1): #内循环,每次从第一个数字开始,打印到跟行数相同的数量
print(o*i,end=" ")
print()
return None
jiujiu()
jiujiu()
1
2 4
3 6 9
4 8 12 16
5 10 15 20 25
6 12 18 24 30 36
7 14 21 28 35 42 49
8 16 24 32 40 48 56 64
9 18 27 36 45 54 63 72 81
1
2 4
3 6 9
4 8 12 16
5 10 15 20 25
6 12 18 24 30 36
7 14 21 28 35 42 49
8 16 24 32 40 48 56 64
9 18 27 36 45 54 63 72 81
# 改造上面函数
def printLine(line_num):
'''
line_num: 代表行号
打印一行九九乘法表
'''
for i in range(1,line_num + 1): #内循环,每次从第一个数字开始,打印到跟行数相同的数量
print(line_num*i,end=" ")
def jiujiu():
for o in range(1,10): #控制外循环,从1到9
printLine(o)
print()
return None
jiujiu()
1
2 4
3 6 9
4 8 12 16
5 10 15 20 25
6 12 18 24 30 36
7 14 21 28 35 42 49
8 16 24 32 40 48 56 64
9 18 27 36 45 54 63 72 81
参数详解
- 参数分类
- 普通参数/位置参数
- 默认参数
- 关键字参数
- 收集参数
# 普通参数案例
def normal_para(one,two,three):
print(one + two)
return None
normal_para(10,2,3)
12
# 默认参数案例
def default_para(one, two, three = 100):
print(one + two)
print(three)
return None
default_para(1,2)
default_para(1,2,3)
3
100
3
3
# 关键字参数
def keys_para(one, two, three):
print(one +two)
print(three)
return None
keys_para(one=1,two=2,three=3)
keys_para(three=100,one=20,two=32)
3
3
52
100