乐趣区

关于python:函数基础一

一、定义

函数是对语句的封装

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 result

x = 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 += 1


def quit_system():
    # print('退出零碎')
    is_sure = input('你确定要退出吗?(yes  or  no)')
    if is_sure.lower() == 'yes':
        return True
    else:
        return False


def 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()
退出移动版