一、定义

函数是对语句的封装

def 函数名    函数体

二、参数

1、形参和实参
函数定义时须要几个形参,调用函数时就须要传入几个实参
形参:函数定义时,在括号里定义的变量,称为形式参数 ,简称形参,只起到占位的作用;
实参:函数调用时传入的值,称为理论参数,简称实参,是真正参加逻辑解决的值
2、传递任意数量的实参
*args 是一个元组,示意可变参数

def test(a, b, *args):    print(args)    print(a+b)    test(1, 2, 3)

三、返回值

如果一个函数没有返回值,那么这个函数的返回后果是None

def get_sum(m, n):    result = 0    for i in range(m, n+1):        result += i    return resultx = get_sum(1, 2)print(x**2)

四、内置函数

1. print()须要输出一个参数,参数是一个字符串类型的数据2. input()3. len()4. max()5. sum()求和6. pow(x,y)求x的y次方7. round(f,n)四舍五入,保留小数点后n位8. sorted()对可迭代对象进行排序9.
nums = [8,1,2,0,9]print(max(nums))print(nums.sort())#列表的sort()办法进行排序,如果用对象的sort办法,运行后没有后果,间接作用到列表了print(sorted(nums))#内置函数sorted(),将列表传进去,后果是排序后的

五、函数的应用

# 1、定义一个函数,让用户输出长和宽,计算并打印面积,要求面积四舍五入保留到小数点后两位def get_area():    width = float(input('请输出宽:'))    height = float(input('请输出高:'))    # %f     示意的是小数点的占位符    # %.nf   示意的是四舍五入保留到小数点后n位    print('计算出来的面积是%.2f' %(width*height))get_area()
# 2、定义一个函数,求一个列表里数据的最大值def get_max(ns):    # 假如列表里第0个数是最大值    my_max = ns[0]    for n in ns:        if n > my_max:            my_max = n    print('列表里的最大数是%d' % my_max)nums = [8, 1, 5, 4, 3, 9, 0]get_max(nums)
# 3、定义一个函数,一直的让用户输出数字,如果用户输出stop,进行输出,并打印这些数字里的最大数def get_max(ns):    # 假如列表里第0个数是最大值    my_max = ns[0]    for n in ns:        if n > my_max:            my_max = n    print('列表里的最大数是%d' % my_max)def demo():    nums = []  # 用来保留用户输出的数字    while True:        num = input('请输出一个数字:')        if num == 'stop':            break        nums.append(int(num))    get_max(nums)demo()
# 4、名片管理系统# 定义一个全局变量的列表,用来保留所有的用户user_list = []def add_user():    # print('增加名片')    # 让用户输出用户名,手机号和QQ等信息    name = input('请输出姓名:')    for u_dict in user_list:        if u_dict['name'] == name:            print('对不起,用户名曾经被占用了!!!')            # break#只能完结以后循环,但函数中除了该循环外的上面仍会执行            return  # 示意完结函数    tel = input('请输出手机号:')    qq = input('请输出QQ号:')    # 把用户输出的信息整合成为一个字典来保留    user = {'name': name, 'tel': tel, 'qq': qq}    # 把创立好的用户字典增加到用户列表里    user_list.append(user)    print(user_list)def del_user():    # print('删除名片')    num = int(input('请输出要删除的序号:'))    if num < 0 or num > len(user_list)-1:        print('您输出的序号不在范畴内')        return    is_sure = input('你确定要删除吗(yes or no):')    if is_sure.lower() == 'yse':        user_list.pop(num)    print(user_list)def modify_user():  #  print('批改名片')    if num < 0 or num > len(user_list)-1:        print('您输出的序号不在范畴内')        return    print('您要批改的信息时:')    # 依据下标获取到字典数据    user_dict = user_list[num]    print('姓名:%s,手机号:%s,QQ号:%s' %          (user_dict['name'], user_dict['tel'], ['qq']))    new_name = input('请输出新的姓名:')    new_tel = input('请输出新的手机号:')    new_qq = input('请输出新的qq:')    user_dict['name'] = new_name    user_dict['tel'] = new_tel    user_dict['qq'] == new_qq    print(user_list)def show_user():    # print('显示名片')    search_name = input('请输入您要查问的姓名:')    for user in user_list:        if user['name'] == name:            print('查问到的信息如下:')            print('姓名:%s,手机号:%s,QQ号:%s' %                  (user['name'], user['tel'], user['qq']))            break    else:        print('没有您要找的信息......')def show_all():    # print('显示所有')    print('序号             姓名          手机号           QQ')    i = 0    for user in user_list:        # center  字符串的办法        print('%d    %s   %s    %s' % (i, user['name'].center(            10), user['tel'].center(14), user['qq'].center(10)))        i += 1def quit_system():    # print('退出零碎')    is_sure = input('你确定要退出吗?(yes  or  no)')    if is_sure.lower() == 'yes':        return True    else:        return Falsedef main():    while True:        print('----------------------')        print('名片管理系统V1.0')        print('1:增加名片')        print('2:删除名片')        print('3:批改名片')        print('4:查问名片')        print('5:显示所有名片')        print('6:退出零碎')        print('----------------------')        num = input('请输出要进行从操作(数字)')        if num == '1':            add_user()        elif num == '2':            del_user()        elif num == '3':            modify_user()        elif num == '4':            show_user()        elif num == '5':            show_all()        elif num == '6':            # quit_system()            is_exit = quit_system()            if is_exit == True:                break        else:            print('输出的内容不非法')main()