python学习之函数

一 函数基本操作

定义函数:

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))

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小李小于

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值