• day9——函数初识


    函数的定义:将可重复使用的,实现某种功能的代码段组织在一起
    2、函数的语法:
    def 函数名(参数):
    函数体
    return
    2.1、函数名是一个变量,因此命名规则需遵守变量命名规则

    3、函数的调用
    函数名()
    4、函数的返回值
    return 可空、None、单个、多个以tuple返回给调用者
    5、函数的参数:
    函数定义时声明的变量的叫形参
    1、位置参数
    2、默认参数
    函数调用时传给函数的叫实参
    1、位置参数
    定义多少个,调用时也必须传多少个
    2、关键字参数
    3、混合参数
    位置参数需在关键字参数之前






    函数返回值
    return: 在函数执行的时候,遇到return就返回
    函数后面什么都不写,返回None
    函数中只写一个return,会返回None
    多个返回值接受到的是元祖

    参数:
    函数执行的时候给函数传递信息
    在函数生命的位置给的变量: 形参
    在函数调用的地方给的具体的值:实参


    实参
    位置参数:按照形参的位置,传值
    关键字参数:按照形参的名字给形参传值
    混合参数:即用位置参数,也用关键字参数,先位置参数,后关键字参数

    形参
    位置参数
    默认值参数
    动态传参


    day8——作业
    1,整理函数相关知识点,写博客。



    2,写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。
    def func(a):
        l2 = []
        for i in range(len(a)):
            if i % 2 == 1:
                l2.append(a[i])
        return l2
    print(func([1,2,3,4,5,6,7]))
    
    
    ②
    def baba(a):    #传完参数以后,现在的   a = [1,2,3,4,5,6,7,8,4,5,6,78,9,8]
        return a[1::2]   #对原列表进行切片形成一个新列表,将新列表返回给调用者
    print(baba([1,2,3,4,5,6,7,8,4,5,6,78,9,8]))    #爸爸接受return返回的值



    3,写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。
    def func(a):
        return len(a) > 5
    print(func('afdffsfsf'))
    
    ②
    def func(x):return True if len(x) > 5 else False
    print(func([1,2,3,4,5,6,7]))



    4,写函数,检查传入列表的长度,如果大于2,将列表的前两项内容返回给调用者。
    ①:
    def func(a):return a[:2] if len(a) > 2 else None
    print(func([1,2,3,4]))
    
    
    ②:
    
    def func(a):
        return a[:2]
    print(func([1]))


    5,写函数,计算传入函数的字符串中, 数字、字母、空格 以及 其他内容的个数,并返回结果。
    def func(a):
        s = s1 = s2 = s3 = 0
        for i in a:
            if i.isspace():
                s += 1
            elif i.isalpha():
                s1 += 1
            elif i.isdigit():
                s2 += 1
            else:
                s3 += 1
        return ('空格:%s,字母:%s,数字:%s,其他:%s,'%(s,s1,s2,s3))
    print(func('fdkls4909fjksj jfkd'))


    6,写函数,接收两个数字参数,返回比较大的那个数字。
    def func(x,y):return x if x > y else y
    print(func(10,5))


    7,写函数,检查传入字典的每一个value的长度,如果大于2,
    那么仅保留前两个长度的内容,并将新内容返回给调用者。
    dic = {"k1": "v1v1", "k2": [11,22,33,44]}
    PS:字典中的value只能是字符串或列表
    ①
    dic = {"k1": "v1v1", "k2": [11,22,33,44]}
    def func(a):
        for i in a:
            a[i] = a[i][:2]
        return a
    print(func(dic))
    
    ②
    dic = {"k1": "v1v1", "k2": [11,22,33,44]}
    newdic = {}
    def func(a):
        for k, v in a.keys():
            if len(v) > 2:
                s = v[0:2]
                newdic[k] = s
            else:
                newdic[k] = v
        return a
    print(func(dic))


    8,写函数,此函数只接收一个参数且此参数必须是列表数据类型,
    此函数完成的功能是返回给调用者一个字典,
    此字典的键值对为此列表的索引及对应的元素。例如传入的列表为:
    [11,22,33] 返回的字典为 {0:11,1:22,2:33}。


    def func(a):
        dic = {}
        if type(a) == list:
            for k,v in enumerate(a):   #枚举法
                dic[k] = v
        return dic
    print(func([11,22,33,44]))



    9,写函数,函数接收四个参数分别是:姓名,性别,年龄,学历。
    用户通过输入这四个内容,然后将这四个内容传入到函数中,
    此函数接收到这四个内容,将内容追加到一个student_msg文件中。

    def func(name,sex,age,education):
        with open("student_msg","a",encoding="utf-8") as f:
            f.write(name+'_'+sex+'_'+age+'_'+education+'
    ')
    
    name = input("请输入你的姓名:")
    gender = input("请输入你的性别:")
    age = input("请输入你的年龄:")
    education = input("请输入你的学历:")
    print(func(name,gender,age,education))


    10,对第9题升级:支持用户持续输入,Q或者q退出,性别默认为男,如果遇到女学生,则把性别输入女。


    def func(name,age,education,sex=""):
        with open("student_msg","a",encoding="utf-8") as f:
            li = "	".join([name,sex,age,education])
            f.write(li+"
    ")
    
    flag = 1
    while flag:
        name = input("请输入你的名字(输入q或者Q退出):").strip()
        if name.strip().upper() == 'Q':
            flag = 0
            break
        else:
            sex = input("请输入你的性别(默认为男,回车即可):")
            age = input("请输入年龄:")
            education = input("请输入学历")
            if sex =="":
                func(name,age,education,sex)
            else:
                func(name,age,education)


    11,写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成整个文件的批量修改操作(升级题)。


    import os
    with open('change',encoding='utf-8') as f1,
        open('change.bak',encoding='utf-8',mode="w") as f2:
        for i in f1:
            new_line = i.strip().replace('alex','SB')
            f2.write('%s
    '% new_line)
    os.remove('change')
    os.rename('change.bak','change')


    12,写一个函数完成三次登陆功能,再写一个函数完成注册功能(升级题)


    def register():
        while True:
            username = input('请输入新帐号:').strip()
            password = input('请输入新密码:').strip()
            with open('name_list', encoding='utf-8', mode='a+') as f:
                f.seek(0)
                for i in f:
                    i = i.split()
                    if username in i:
                        print('此帐号已存在,请重新注册!')
                        break
                else:
                    f.write('{}	{}
    '.format(username, password))
                    return '注册成功'
    # print(register())
    
    def login():
        num = 1
        while num <= 3:
            username = input('请输入用户名:')
            password = input('请输入密码:')
            with open('name_list', encoding='utf-8') as f1:
                for i in f1:
                    i = i.split()
                    if username in i and password in i:
                        return '登录成功!'
                else:
                    print('帐号或密码错误,请重新输入! 您还有%s次机会。' % (3 - num))
                    num += 1
        return '登录失败!'
    # print(login())
    
    print('1,登录
    2,注册')
    while True:
        choice = input('请输入序号:').strip()
        if choice == '1':
            print(login())
            break
        elif choice == '2':
            print(register())
            print(login())
            break
        else:
            print('输入有误,请重新输入选择!')
    
    
    
    
  • 相关阅读:
    无法添加sql server ER图
    我和COC
    WordPress怎样设置菜单栏旋转小图标
    VS Code怎样设置成中文
    初探 Git Submodules
    使用 rsync-deploy-action 同步 Hexo 博客到个人服务器
    Latex基本语法简记
    SQLAlchemy建立数据库模型之间的关系
    Flask的请求钩子与上下文简览
    如何将本地项目推送到Github
  • 原文地址:https://www.cnblogs.com/-li926/p/9478068.html
Copyright © 2020-2023  润新知