day 9

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

   以def 定义函数,空格  函数名 ():(英文冒号)  -》  定义:def 关键词开头,空格之后接函数名称和圆括号(),最后还有一个":"。

  函数名:函数名只能包含字符串、下划线和数字且不能以数字开头。

  注释:每一个函数都应该对功能和参数进行相应的说明,应该写在函数下面第一行。以增强代码的可读性。

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

def ret_lst(a):
    lst = []
    for index in range(0,len(a)+1,2):
        lst.append(a[index])
    return lst
print(ret_lst(input("输入几个数:  ").split()))

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

def len_num(a):
    if len(a) >5:
        return "传入的长度大于5!"
    else:
        return "传入长度不大于5!"
print(len_num([1,23,45,34]))

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

def len_str(a):
    if len(a) >2:
        return a[:2]
    else:
        pass
print(len_str([2,3]))

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

def num1(str1):
    let1 = 0
    spa = 0
    dig = 0
    oth_ers = 0
    for i in str1:
        if i.isdigit():
            dig += 1
        elif i.isalpha():
            let1 += 1
        elif i.isspace():
            spa += 1
        else:
            oth_ers += 1
    print("有{}个数字,{}个字母,{}个空格,其他{}个".format(dig,let1,spa,oth_ers))
num1( )

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

def max1(a,b):
return a if a>b else b
print(max1(18,12))

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

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

dic1 = {"k1": "v1v1", "k2": [11,22,33,44]}
def str1(a):
    for key in a:
        if len(a[key])>2:
            a[key]=a[key][:2]
    return a
print(str1(dic1))

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

def dic_str(a):
    dic1 = {}
    if type(a) != list:
        print("必须是列表!")
    else:
        for index in range(len(a)):
            dic1[index] = a[index]
        return dic1


print(dic_str([11,23,11,78,97]))

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

def stu_msg(name,sex,age,education):
    return name,sex,age,education
ret = str(stu_msg('keyu','male',12,'mst'))  # 注意 返回多个值为元组,需用str()转下。
with open('student_msg', "w", encoding="utf-8") as f:
    f.write(ret)

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

def stu_msg(name,age,education,sex="男"):
    return name,sex,age,education

while 1:
    str1 = input("请输入用户姓名、年龄、性别、学历(q或Q退出): ")
    if str1.upper()=="Q":
        break
    else:
        str1 =str1.split()
        if len(str1) > 3:
            name, age, education, sex = str1
            ret = stu_msg(name,age,education,sex)
        else:
            name, age, education = str1
            ret = stu_msg(name, age, education)
        with open('student1_msg', "w", encoding="utf-8") as f:
            f.write(str(ret))
原文地址:https://www.cnblogs.com/andyyangpython/p/10523495.html