• 写一些函数相关的作业


    #1、写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者
    def func(l):
        return l[1::2]
    
    print(func([1,2,3,4,5,6]))
    
    
    #2、写函数,判断用户传入的对象(字符串、列表、元组)长度是否>5
    def func(x):
        return len(x)>5    #计算的表达式都是一个布尔表达式,结果是一个True/False
    print(func([1,2,3,4]))
    
    #3、写函数,检查传入列表的长度,如果大于2则保留前两个长度的内容,并将新内容返回
    def func(l):
        return l[:2]    #切片的长度如果大于原序列的长度,不会报错,有多长且多长
    print(func([1]))
    
    #4、写函数,计算传入字符串中 数字、字母、空格、其他字符的个数,并返回结果
    def func(s):
        dic = {'num':0,'alpha':0,'space':0,'others':0}
        for i in s:
            if i.isdigit():
                dic['num'] += 1
            elif i.isalpha():
                dic['alpha'] += 1
            elif i.isspace():
                dic['space'] += 1
            else:
                dic['others'] += 1
        return dic
    print(func('sfd345  fsd  gdh -=-a=x'))
    
    #5、写函数,检查用户传入的对象的每一个元素是否含有空内容,并返回结果
    def func(x):
        if x and type(x) is str:
            for i in x:
                if i == ' ':
                    return True
        elif x and type(x) is list or type(x) is tuple:
            for i in x:
                if not i:
                    return True
        elif not x:
            return True
        else:
            return True
    
    print(func([1,2,3,'hhhj   ']))
    
    #6、写函数,检查传入的字典的每一个value的长度,如果大于2,那个保留前两个长度的内容,并返回新内容
    def func(dic):
        for k in dic:
            if len(dic[k])  >2:
                dic[k] = dic[k][:2]
        return dic
    
    print(func({1:'wangjing',2:[1,2,3,4]}))
    
    #7、写函数,接收2个数字参数,返回比较大的数字
    def func(a,b):
        return a if a>b else b  #max(a,b)
    print(func(5,4))
    
    #8、写函数,用户传入修改的文件名 与 要修改的内容,执行函数,完成整个文件的批量修改操作
    def func(file,old,new):
        with open(file,mode='r',encoding='utf-8') as f1,
                open('{}.bak'.format(file),mode = 'w',encoding = 'utf-8') as f2:
            for line in f1:
                if old in line:
                    line = line.replace(old,new)
                f2.write(line)
        import os
        os.remove(file)
        os.rename('{}.bak'.format(file),file)
    func('wj_file','wangjing','wangxiao')
    
    '''
    作业
    1、先注册,注册结果写到txt文件,并打印
    2、三次登录,读取文件验证
    '''
    
    
    def register():
        user = ''
        while 1:
            name = input('请输入您的用户名:')
            if name.upper() == 'Q':
                print('结束注册,请登录')
                break
            pwd = input('请输入您的密码:')
            if pwd.upper() == 'Q':
                print('结束注册,请登录')
                break
            elif len(name) <= 10 and len(name) >= 6 and len(pwd) <= 10 and len(pwd) >= 6:
                with open('wj_users', mode='a', encoding='utf-8') as txt_users:
                    txt_users.write('{},{}
    '.format(name, pwd))
                print('恭喜您注册成功')
            else:
                print('用户名/密码不符合规范,请重新注册')
    
    def get_users(file):
        dict_user = {}
        with open(file, mode='r', encoding='utf-8') as txt_users:
            for line in txt_users:
                dict_user[line[:line.find(',')]] = line[line.find(',') + 1:].strip()
        return dict_user
    
    def login(dict_user):
        time = 3
        while time > 0:
    
            input_name = input('请输入您的用户名:')
            input_pwd = input('请输入您的密码:')
            time -= 1
    
            if input_name in dict_user.keys() and input_pwd == dict_user[input_name]:
                print('恭喜您登录成功')
                break
            else:
                if time <= 0:
                    print('用户名/密码错误,您没有登录机会,强制退出成功')
                else:
                    print('用户名/密码错误,请重试')
    
    
    print('以下进入注册流程'.center(50, '='))
    register()
    users = get_users('wj_users')
    
    print('以下进入登录流程'.center(50,'='))
    login(users)
    
  • 相关阅读:
    2 浮点数
    1 有符号与无符号
    4.变量和不同的赋值方式
    文档格式标准
    常用mysql命令
    一个简单的jsp+servlet实例,实现简单的登录
    容量调度器与公平调度器区别
    CListCtrl用法总结(二)
    CListCtrl 实现排序功能(数字和字母)
    CString 转换成 char *
  • 原文地址:https://www.cnblogs.com/txbbkk/p/9410769.html
Copyright © 2020-2023  润新知