为什么要有函数
函数即变量
函数,一次定义,多次调用
可以提高代码的重复利用率和提高他的模块性
定义函数的格式:
def func(): print('this is test func')
函数分为两个阶段
第一个阶段:定义阶段
第二个阶段:调用阶段
如何调用定义的函数:
函数的内存地址加上()就是调用
print(func) #查看函数内存地址
调用函数的格式
func() #函数调用才会执行函数体代码,函数体就是你写进函数里的代码
快速定义名字
def func(name,age): #name,age代表形参,它俩是虚的,只有在调用阶段它俩才有值 print('my name is %s' % (name,age)) func('兰慧玲',19) #兰慧玲,19代表实参
不可以用关键字(key:value形式)传参
def func(*args): #当有多个参数时,可以考虑用*args,不可以用关键字传参 print(args[1]) #调用参数 func(1,2,3,4,5,6)
关键字传参
def func(**kwargs): print(kwargs) func()
既可以传关键字参数,也可以传没有关键字参数
def func(*args,**kwargs): print(args) print(kwargs) func()
只要定义了形参,必须在调用的时候传参,函数体应不应用你这个形参无所谓。
def func(a,b): print('this is test func') func(1,2)
优化名片管理系统
#encoding=gbk
lt = []
def wel():
print('欢迎使用名片系统')
print('以下是使用说明')
print('1.增加 2.删除 3.查询 4.修改 5.退出')
print('=='*50)
def add():
username = input('请输入要增加的姓名: ')
age = input('请输入要增加的年龄: ')
phone = input('请输入要增加的电话: ')
dict = {'name':username,
'age':age,
'phone':phone
}
lt.append(dict)
def delt():
for i in lt:
print(lt.index(i),i)
a = input('请选择要删除的序号')
if a:
lt.pop(int(a))
print(lt)
else:
print('请正确操作')
def find():
for i in lt:
b = input('请输入你要查找的名字')
if b == i['name']:
print(i)
else:
print('查无此人')
def change():
for i in lt:
print(lt.index(i),i)
c = input('请选择要修改的序号')
new_name = input('新名')
if new_name:
lt[int(c)]['name'] = new_name
new_age = input('新年龄')
if new_age:
lt[int(c)]['age'] = new_age
new_phone = input('新电话')
if new_phone:
lt[int(c)]['phone'] = new_phone
def main():
while True:
wel()
num = input('请输入选择的数字')
if num == '1':
add()
elif num == '2':
delt()
elif num == '3':
find()
elif num == '4':
change()
elif num == '5':
print('谢谢使用')
break
else:
print('请输入正确选项')
if __name__ == '__main__':
main()
return是函数执行结果的返回值
return往下的代码将不会执行,只能用在函数体内
def func(): print('this is test func') return 0 print('aaa') func()
返回值可以定义任何,当返回值不设定的时候,是None,为空。
def func(a): print('this is test func') if a == 0: print('aaa') return 0 elif a == 2: return 2 else: print('bbb') return 1 func(1)
返回值
就是函数调用本身的结果:print(func())
def func(): print('this is test func') return 0 func()
return的作用
def func(a): print('this is test func') if a == 1: return 1 elif a == 2: return 2 elidf a == 3: return 3 else: print('错误') func(3)
def func1(a): print('this is test func') if a == 1: return 1 elif a == 2: return 2 elif a == 3: return 3 else: print('错误') def func2(i): if i == 3: print('true') else: print('flase') res = func1(3) func2(res)
这个是返回它的内存地址
def func(): return func pritn(func())