python 的基础 学习 11天 作业题

1、整理函数相关知识点,写博客

2、写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。

def func1(argv):
    li = []
    for i in range(len(argv)):#循环取奇数
        if i %2 == 1:
            li.append(argv[i])
    return li
print(func1([1,2,3,4]))
def func(argv):return  argv[1::2]#切片方法
print(func([1,2,3,4]))

3、写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。

def func(argv):
    if len(argv) > 5:
        return True
    else:return False
print(func('sjfjkskjf'))
def func(argv):
    return True if len(argv) > 5 else False
print(func('jsajdjsaka'))
def func(argv):
    return len(argv) > 5
print(func('adajjadj'))

4、写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。

def func(argv):
    li = []
    if len(argv) > 2:
        li = argv[:2]
    else:
        li = argv
    return li
print(func([2,4,4,3,2]))
def func(argv):
    return argv[:2] if len(argv) > 2 else argv
print(func([1,3,4,5]))
def func(argv):
    return argv[:2]
print(func([1,2,3,4]))

5、写函数,计算传入字符串中【数字】、【字母】、【空格] 以及 【其他】的个数,并返回结果。

def func(argv):
    dic = {'digit':0,'alpha':0,'space':0,'other':0}
    for i in argv:
        if i.isdigit():
            dic['digit'] += 1
        elif i.isalpha():
            dic['alpha'] += 1
        elif i.isspace():
            dic['space'] += 1
        else:
            dic['other'] += 1
    return '数字%d,字母%d,空格%d,其他%d'%(dic['digit'],dic['alpha'],dic['space'],dic['other'])
print(func('ajdj2384234  大家安静**&&'))

7、写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。

   dic = {"k1": "v1v1", "k2": [11,22,33,44]}

   PS:字典中的value只能是字符串或列表

def func(argv):
    for i in argv:
        if len(argv[i]) > 2:
            argv[i] = argv[i][:2]
    return argv
print(func({"k1": "v1v1", "k2": [11,22,33,44]}))
def func(argv):
    for i in argv:
        argv[i] = argv[i][:2]
    return argv
print(func({"k1": "v1v1", "k2": [11,22,33,44]}))

8、写函数,接收两个数字参数,返回比较大的那个数字。

def func(a,b):
    if a>b:
        return a
    else:
        return b
print(func(11,33))
def func(a,b):
    z=a if a>b else b
    return z
print(func(22,444))
def max_min(a,b):
    return a if a>b else b
print(max_min(444,55))

 

9、写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成整个文件的批量修改操作(进阶)。

import os
def File_modification(path,old,new):
    with open(path,encoding='utf-8')as f1,
        open(path+'.bak',encoding='utf-8',mode='w') as f2:
        for i in f1:
            new_i = i.replace(old,new)
            f2.write(new_i)
    os.remove(path)
    os.rename(path+'.bak',path)
    return True
print(File_modification('a.txt','alex','SB'))

10、写一个函数完成三次登陆功能,再写一个函数完成注册功能(进阶)

def register():
    while True:
        flag = True
        username = input('请输入用户名:')
        with open('register_msg',encoding='utf-8')as f1:
            for i in f1:
                li = i.strip().split()
                if username == li[0] or username == ' ':
                    print('用户名已存在,请重新输入')
                    break
            else:
                password = input('请输入密码:')
                with open('register_msg',encoding='utf-8',mode='a')as f2:
                    f2.write('
{}	{}'.format(username,password))
                    print('注册成功')
                return login()


def login():
    i = 0
    while i <3:
        i += 1
        username = input('请输入用户名:')
        password = input('请输入密码:')
        with open('register_msg',encoding='utf-8') as f2:
            for line in f2:
                line = line.strip()
                line_list = line.split('  ')
                if username == line_list[0] and password == line_list[1]:
                    return True


def func1(*args,**kwargs):
    print('欢迎登录')
    flag = True
    while flag:
        choice = input('1,登录,2,注册,Q,退出')
        if choice == '1':
            is_login = login()
            if is_login:
                print('登录成功')
            else:
                print('登录失败')
            flag = False
        if choice == "2":
            register()
            flag = False
        elif choice == 'Q':
            exit('bye')
            flag = False

func1()
原文地址:https://www.cnblogs.com/yzxing/p/8669886.html