函数基本用法

# 储备知识:
# 函数的使用应该分为两个明确的阶段
# 1. 定义阶段:只检测语法,不执行函数体代码
def func():
print('from func')
# 2. 调用阶段:会触发函数体代码的执行
# func()



#先定义后调用
# 示范一
# def foo():
# print('from foo')
# bar()
# foo()

# # 示范二:
# def bar():
# print('from bar')
#
# def foo():
# print('from foo')
# bar()
#
# foo()

# # 示范三:
# def foo():
# print('from foo')
# bar()
#
# def bar():
# print('from bar')
#
# foo()

# 示范四:
def foo():
print('from foo')
bar()

foo()

def bar():
print('from bar')



 一:函数的定义三种形式
'''
# 有参函数
def func(x):
pass

func(1)

# 无参函数
def bar():
pass

bar()
# 空函数
# def func():
# pass

def auth():
pass

def register():
pass

def shopping():
pass

def transfer():
pass

def pay():
pass
'''

# 二:函数调用的三种形式
# register() # 语句形式

def max2(x,y):
if x > y:
return x
else:
return y

# res=max2(10,20)*12 # 表达式

res=max2(max2(10,20),30) # 将函数的调用当作参数传给另外一个函数
print(res)




#一: 函数的参数分为两大类:
# 形式参数(形参): 在定义函数阶段,括号内定义的参数/变量名称为形参
# 实际参数(实参): 在调用函数阶段,括号内传入的值/变量值称为实参
# ps: 在调用函数阶段会将实参(值)的值绑定给形参(变量名),这种绑定关系只在调用函数时生效,在函数执行完毕后就会解除绑定
# def func(x,y): #x=1 y=2
# # x=1
# # y=2
# print(x,y)
#
# func(1,2)
#
# print(x)
# print(y)


# 二: 细分:
# 1. 位置参数:
# 1.1 位置形参: 在定义阶段,按照从左到右的顺序依次定义的形参称之为位置形参
# 特点: 但凡时按照位置定义的形参,必须被传值,多一个不行少一个也不行
# def func(x,y,z):
# print(x,y,z)

# func(1,2)
# func(1,2,3)
# func(1,2,3,4)

# 1.2 位置实参: 在调用阶段,按照从左到右的顺序依次传入的值称之为位置实参
# 特点:
# 1. 与形参一一对应
# def func(x,y,z):
# print(x,y,z)
#
# func(2,1,3)

# 2. 关键字实参: 在调用阶段,按照key=value的形式定义的实参称之为关键字实参
# 特点: 可以完全打乱顺序,但仍然能为指定的形参传值(总结:指名道姓地为指定的形参传值)
def func(x,y,z):
print(x,y,z)

# func(x=1,y=2,z=3)
# func(1,2,3)
# func(z=3,y=2,x=1)
# 实参的形式可以是位置实参与关键字实参混合使用,但是必须遵循原则
# 1.位置实参必须放在关键字实参的前面
# 2.不能对同一个形参重复传值
# func(1,z=3,y=2)
# func(z=3,1,y=2) #错误
# func(1,z=3,x=2,y=3) #错误


原文地址:https://www.cnblogs.com/yanhui1995/p/9702914.html