一 函数基本操作
定义函数:
def 函数名():#形参非真实数据
代码1
代码2
函数调用:
函数名()# 实参真实数据
函数说明文档 :
作用在用help函数调用的时候,可以清楚的了解到函数的作用
def 函数名():
""" 说明文档 """
全局变量和局部变量:
局部变量:
全局变量:
在函数中修改全局变量:
函数多返回值:
不写类型逗号','连接默认返回值是一个元组
位置参数:
关键字参数:
关键字参数必须在位置参数之后,关键字参数之间不存在先后顺序
缺省参数(默认参数):
为参数传输一个的默认的值,所有参数必须出现在默认参数的前面,包括定义和调用时
在函数调用时候如果为其传值则修改这个默认值
不定长参数:
1:包裹位置参数传递:
def user_info(*args):
print(args)
user_info('TOM',18)
2:包裹关键字参数:
def user_info(**kwargs):
print(kwargs)
user_info(name='TOM',age=18,gender='male')
拆包和交换变量值:
1:拆包元组:
def user_info():
return 100,200
num1,num2=user_info()
print(num1)
print(num2)
2:拆包字典:
dict1={'name':'TOM','age':18}
a,b=dict1
print(a)
print(b)
print(dict1[a])
print(dict1[b])
def user_info():
return {'name':'TOM','age':18}
a,b=user_info()
print(a)#key值无法显示出value值
print(b)
3:交换变量值
1:借助第三个变量(和c一样)
2:
a,b=1,2
print(a)
print(b)
a,b=b,a
print(a)
print(b)
引用:
在python中,值是靠引⽤来传递来的。 我们可以⽤ id() 来判断两个变量是否为同⼀个值的引⽤。 我们可以将id值理解为那块内存的地址标 识
int 类型是不可变类型
a=1
b=a
print(b)
print(id(a))
print(id(b))
a=2
print(a)
print(b)
print(id(a))
print(id(b))
列表是可变类型:
list1=[10,20]
list2=list1
print(list1)
print(list2)
list1.append(30)
print(list1)
print(list2)
所谓可变类型与不可变类型是指:数据能够直接进⾏修改,如果能直接修改那么就是可变,否则是不可 变
可变类型 列表 字典 集合#当数据发生改变后其地址不会发生变化
不可变类型 整型 浮点型 字符串 元组#当数据放生改变后其地址值会发生变化
用函数写一个学员管理系统雏形:
list1=[]
def user_info():
print('-'*20)
print('1:添加学员')
print('2:删除学员')
print('3:修改学员信息')
print('4:查询学员信息')
print('5:显示所有学员信息')
print('6: 将信息保存,退出系统')
print('-'*20)
def add_student():
id=input('请输入学员身份证: ')
name=input('请输入学员姓名: ')
global list1
for i in list1:
if id == i['id']:
print('学员已经存在')
break
new_dict={}
new_dict['id']=id
new_dict['name']=name
list1.append(new_dict)
print(list1)
def del_student():
id = input('请输入学员身份证: ')
name = input('请输入学员姓名: ')
global list1
for i in list1:
if i['id']==id:
print('学员存在,删除')
list1.remove(i)
print(list1)
break
else:
print('该学员不存在,无法删除')
print(list1)
def modify_student():
id = input('请输入学员身份证: ')
name = input('请输入学员姓名: ')
global list1
for i in list1:
if i['id']==id:
print('学员存在,可以修改信息')
i['name']=input('请输入新的学员姓名: ')
i['id']=input('请输入新的学员学号: ')
print(list1)
break
else :
print('该学员不存在,无法修改 ')
print(list1)
def search_student():
id=input('请输入要查找的学员id: ')
global list1
for i in list1:
if i['id']==id:
print('该学员存在 其姓名为:')
print (i['name'])
break
else:
print('该学员id不存在,查无此人')
def print_allstudent():
global list1
for i in list1:
print(i['id'])
print(i['name'])
while True:
user_info()
user_num=int(input('请输入你的选择:'))
if user_num==1:
add_student()
elif user_num==2:
del_student()
elif user_num==3:
modify_student()
elif user_num==4:
search_student()
elif user_num==5:
print_allstudent()
elif user_num==6:
f = open('student.txt', 'a+')
f.write(str(list1))
f.write('\n')
f.close()
break
else:
print('输入错误,请重新输入:')
高阶函数:
把函数作为参数传⼊,这样的函数称为⾼阶函数,⾼阶函数是函数式编程的体现。函数式编程就是指这 种⾼度抽象的编程范式
1:map
map(function,list)
list1=[1,2,3,4,5]
print(list1)
def func(x):
return x**2
result=map(func,list1)
print(list(result))