函数练习一

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

def func(lst):
    if type(lst) == tuple or type(lst) == list:
        lst = list(lst[1::2])
        return lst
    else:
        return
s = (1,12,5,5,4,5,5,1,52,15,45)
print(func(s))

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

def func3(obj):
    if type(obj) == str or type(obj) == list or type(obj) == tuple:
        if len(obj)>5:
            return True
        else:
            return False
s = (1,12,5,5,4,5,5,1,52,15,45)
print(func3(s))

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

def func4(lst):
    if type(lst) == list:
        if len(lst) > 2:
            return lst[:2]
        else :
            return lst
s = [1,12,5,5,4,5,5,1,52,15,45]
print(func4(s))

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

def func5(string):
    if type(string) == str:
        n = 0
        z = 0
        q = 0
        for i in string:
            if i.isdecimal():
                n += 1
            elif "a"<= i <="z" or "A"<= i <="Z":
                z += 1
            else :
                q += 1
        return n,z,q
s = "ADdsa232132犯得上发射点@#$@#"
print(func5(s))

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

def func6(a,b):
    if type(a) ==int and type(b) == int:
        if a > b:
            return a
        else:
            return b
print(func6(3,4))

7.写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
dic = {"k1": "v1v1", "k2": [11,22,33,44]}
PS:字典中的value只能是字符串或列表

dic = {"k1": "v1v1", "k2": [11,22,33,44]}
def func7(dic):
    for i in dic:
        if type(dic[i]) == list or type(dic[i]) == tuple:
            if len(dic[i]) > 2:
                dic[i] = dic[i][:2]
    return dic
print(func7(dic))

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

def func8(lst):
    dic = {}
    if type(lst) == list:
        for i in range(len(lst)):
            dic[i] = lst[i]
        return dic
lst = [11,22,33]
print(func8(lst))

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

def func9(name,sex,age,edu):
    with open("student_msg","a",encoding="utf-8")as f:
        f.write(f"{name},{sex},{age},{edu}\n")
name = input("name:")
sex = input("sex:")
age = input("age:")
edu = input("edu(学历):")
func9(name, sex, age, edu)

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

def func10(name,age,edu,sex ="男"):
    with open("student_msg","a",encoding="utf-8")as f:
        f.write(f"{name},{sex},{age},{edu}\n")
while True:
    name = input("name:")
    if name.upper() =="Q":
        break
    sex = input("sex:")
    if sex.upper() =="Q":
        break
    age = input("age:")
    if age.upper() =="Q":
        break
    edu = input("edu(学历):")
    if edu.upper() =="Q":
        break
    if sex =="女":
        func10(name, age, edu,"nv")
    else:
        func10(name, age, edu)

原文地址:https://www.cnblogs.com/ciquankun/p/11197620.html