初识函数作业

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

def func(lst):
    return list(lst[1::2])
print(func([1,2,3,4,5,6,7,8,9])) 

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

def func(s):
    return len(s) > 5
print(func("hahahahah")) 

3,写函数,检查传入列表的长度,如果大于2,将列表的前两项内容返回给调用者。

def func(lst):
    if len(lst)>2:
        return lst[0],lst[1]
print(func([1,2,3,4,5,6]))

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

def func(s=""):
    shizi = 0
    zimu = 0
    kongge = 0
    qita = 0
    for c in s:
        if c.isdigit():
            shizi +=1
        if c.isalpha():
            zimu +=1
        if c.isspace():
            kongge +=1
        else:
            qita += 1
    return shizi,zimu,kongge,qita
print(func("jin san pan 123$$$\n\t"))  

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

def func(a,b):
    return a if a > b else b
print(func(5,6)) 

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

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

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

def func(dic = {}):
    for k ,v in dic.items():
        if len(v) > 2:
            dic[k] = v[:2]
    return dic
print(func({"k1":"v1v2","k2":[11,22,33,44,]})) 

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

def func(lst):
    if type(lst)!= list:
        print("滚回去,拿列表再来")
        return
    dic = {}
    for i in range(len(lst)):
        dic[i] = lst[i]
    return dic
print(func([11,22,33]))

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

def func(name,gender,age,edu):
    f = open("student_msg",mode="a",encoding="utf-8")
    f.write(name+"_"+gender+"_"+age+"_"+edu+"\n")
    f.flush()
    f.close()

n = input("请输入你的姓名:")
g = input("请输入你的性别:")
a = input("请输入你的年龄:")
e = input("请输入你的学历:")

func(n,g,a,e)

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

def func(name,age,edu,gender= "男"):
    f = open("student_msg",mode="a",encoding="utf-8")
    f.write(name+"_"+gender+"_"+age+"_"+edu+"\n")
    f.flush()
    f.close()
while 1:
    n = input("请输入你的姓名:")
    g = input("请输入你的性别:")
    a = input("请输入你的年龄:")
    e = input("请输入你的学历:")
    if g == "":
        func(n,a,e)
    else:
        func(n,a,e,g,)
    content = input("信息录入完毕,是否继续(Q或q退出):")
    if content.upper() == "Q":
        break 

11,写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成整个文件的批量修改操作(升级题, 此题认真阅读和理解. 应该有3个参数才对)。

import os
def modify_file(file,old,new):
    with open(file,mode="r",encoding="utf-8") as f1 ,open(file+"_副本",mode="w",encoding="utf-8") as f2:
        for line in f1:
            line = line.replace(old,new)
            f2.write(line)
    os.remove(file)
    os.replace(file+"_副本",file)
modify_file("student_msg","男","不详")

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

def regist():
    uname = input("请输入要注册的用户名:")
    f = open("userinfo",mode="r",encoding="utf-8")
    for line in f :
        un = line.split("_")[0]
        if un == uname:
            print("用户名注册过重新输入")
            return
    else:
        print("用户名可用")
    f.close()
    upwd = input("请输入要注册的密码:")
    f = open("userinfo", mode="a", encoding="utf-8")
    f.write(uname+"_"+upwd +"\n")
    f.flush()
    f.close()

def login():
    count = 1
    while count <=3:
        uname = input("请输入你的用户名:")
        upwd = input("请输入你的密码:")
        f = open("userinfo",mode="r",encoding="utf-8")
        for line in f:
            u,p = line.strip().split("_")
            if uname == u and upwd == p:
                print("登录成功")
                return True
        else:
            print("登录失败,用户名密码不正确")
            count += 1
regist()
login()

  

猜你喜欢

转载自www.cnblogs.com/xiaoqianbook/p/10084960.html