'''
函数:是一段可以重复调用的代码,通过输入的参数,返回对应的结果
名字绑定的机制,把实际参数的值与形式参数的值绑定到一起
1、函数调用的时候,实际参数的值的顺序与形式参数的顺序一一对应
2、当在函数调用的时候,指定了形式参数的实际参数,这个时候并不是一一对应,而是根据指定的值进行的
'''
def add(a,b):
c=a+b
print(c)
print(a, b)
add(34,2)
add(b=8,a=9)
# 形式参数
def info(name,age,address,sex):
print ("姓名:{name},年龄:{age},地址:{address},性别:{sex}".\
format(name=name,age=age,address=address,sex=sex))
info('huang',10,'nanjing','girl')
def userInfo(userID):
'''登陆成功后,查看用户的基本信息'''
pass
'''python中的默认参数'''
def login(username='huang',password='admin'):
if username=='huang' and password=='admin':
print('success')
else:
print('fail login')
login('huang','admin')
'''函数中有默认参数和形式参数,形式参数在前,默认参数在后'''
def name_age(name,age=10):
pass
'''
函数的返回值:
1、一个函数,它是有返回值的
2、当一个函数,没有return的时候,它的返回值是none
3、当一个函数return的时候,它的返回值是return后面的表达式,或者是值
函数返回值的意义:函数/方法的返回值是为了给另外一个函数或方法请求的参数而已
'''
#def add(a,b):
# c=a+b
# return c
#print(add(2,3))
'''
接口测试:查看用户信息,要查看,实现步骤:
1、发送post请求,login请求登陆成功;
2、登陆成功之后,返回token;
3、带着这个token,可以查看用户信息
'''
def login(username='huang',password='admin'):
if username == 'huang' and password=='admin':
return 'huang12345'
else:
return 'login fail'
def userInfo(token):
'''查看用户信息'''
if token == 'huang12345':
print('显示订单信息')
else:
print('loginout')
userInfo(login('huang','admin'))
''''
动态参数:
*args:--->数据类型是元祖
**kwargs:--->数据类型是字典
'''
def f2(*args):
print(type(args))
f2(12)
def f3(**kwargs):
print(type(kwargs))
f3(name='huang')
def f4(name,age,sex,**kwargs):
print(name,age,sex,kwargs)
f4('huang',10,'girl')
f4('haung',10,'girl',phone=156896533)
def f5(*args,**kwargs):
print(args,kwargs,type(args),type(kwargs))
f5([1,2],(1,2),8,'huang',11.2,name='huang')
def f6(name):
print(name)
f6(([1,2],(1,2),8,'huang',11.2))
'''全局变量和局部变量'''
name = 'huang' #全局变量
def f1():
global name # 修改全局变量
name ='hu'
print(name)
f1()
def f2():
name='admin' #局部变量
print(name)
f2() #优先选择局部变量和局部变量的值