3.28 homework

练习题

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

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


第一种
def func1(argv):
l1=[]
for i in range(len(argv)):
if i %2 == 1:
l1.append(argv[i])
return(l1)
print(func1([1,2,3,4,5,6,78,9]))
第二种
def func1(argv):
return argv[1::2]
print(func1([1,2,3,4,5,6,78,9]))

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


def func2(argv):
return True if len(argv)>5 else False
print(func2('334456778'))

def func2(argv):
return len(argv)>5
print(func2('334456778'))

 

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


def func3(argv):
return argv[0:2] if len(argv)>2 else argv
print(func3([11,22,3,4,5,6,7]))

def func3(argv):
return argv[0:2]
print(func3([11,22,3,4,5,6,7]))

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


def func4(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'digit%d,alpha%d,space%d,other%d' % (dic['digit'],dic['alpha'],dic['space'],dic['other'])
print(func4('dkj'))

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

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

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

    dic = {"k1": "v1v1", "k2": [11,22,33,44]}
PS:字典中的value只能是字符串或列表
def func5(argv):
for i in argv:
argv[i]=argv[i][0:2]
return argv
print(func5({"k1": "v1v1", "k2": [11,22,33,44]}))

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

def func5(num1,num2):
return num1 if num1 > num2 else num2
num1 = input('请输入第一个数字:').strip()
num2 = input('请输入第二个数字:').strip()
print(func5(num1,num2))

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

 

 

 

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

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


def login(*args, **kwargs):
    with open('register_msg', encoding='utf-8') as f1:
        count = 1
        while count <= 3:
            username = input('请输入用户名:').strip()
            password = input('请输入密码:').strip()
            for i in f1:
                li = i.strip().split()
            if (username == li[0] or username == '') and password == li[1]:
                print('登陆成功')
                break
            else:
                print('用户名或密码错误,您已使用%d次机会,剩余%d次机会' % (int(count), int(3 - count)))
                count += 1


while True:
    choice = input('请选择注册或者登陆:1注册,2登陆,按其他键退出').strip()
    if choice == '1':
        register()
        continue
    elif choice == '2':
        login()
        continue
    else:
        print('退出成功')
        break

明日默写
①,return的作用。

②,传参的几种方法,每个都简单写一个代码。

如,实参,按位置传参。

def func(x,y):

Pass

func(‘a’,’b’)

原文地址:https://www.cnblogs.com/kateli/p/8665503.html