初识函数练习

1.整理函数相关知识点

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

# x = [1,2,3,4,5]
#
# def func(x):
#     for i in x[::2]:
#         print(i)
# func(x)
老师用的方法:
st = [1,2,3,4,5,6]
def func(a):
    new_lst = []
    for i in a:
        if i % 2 == 1:
            new_lst.append(a[i])
    print(new_lst)
func(lst)

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

lst = [1,2,3,4,5,6]
#
# def func(lst):
#
#     if len(lst) < 5:
#         print("长度小于5")
#     else:
#         print("长度大于5")
# func(lst)

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

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

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

s = "weerrf1233,\dfd67rt4"
# 
# def func(s):
#     n_num = 0
#     z_num = 0
#     q_num = 0
#     for i in s:
#         if i.isdecimal():
#             n_num += 1
#         elif i.isalpha():
#             z_num += 1
#         else:
#             q_num += 1
#     return  n_num,z_num,q_num
# 
# print(func(s))

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

c = int(input("请输入数字"))
f = int(input("请输入数字"))
def func(a,b):
    if a >b:
        return a
    else:
        return b
func(c,f)



另外一种三元函数法

def func()
return a if a>b else b
func(2,4)

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

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

def func(dic):
    for i in dic:
        if len(dic[i]) >2:
            return dic[i][0],dic[i][1]

func(dic)           #字典的下标


老师用的方法


dic = {"k1": "v1v1", "k2": [11,22,33,44]}
def func(dic):
		for k,v in dic.items():   #返回键值对
			if len(v) > 2:
					dic["k"] = v[:2]
					return dic
func(dic)

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

lst = [1,2,3,4,5,6]
def func():
    for i in range(len(lst)):
        dic = {}
        dic[i] = lst[i]
        print(dic)
func()

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

name = input("姓名:")
sex = input("性别:")
age = input("年龄:")
edu = input("学历:")
def func(name,sex,age,edu):
    with open("student_msg","a",encoding = "utf-8")as f:
        f.write(f"姓名:{name},性别:{sex},年龄:{age},学历:{edu}")
func(name,sex,age,edu)

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

while True:

    print("Q/退出")

    name = input("姓名:")

    if name.upper() == "Q":

        break

    sex = input("性别:")

    age = input("年龄:")

    level = input("学历:")



    def func(name,age,level,sex="男"):

        with open("student_msg","a",encoding="utf-8")as f:

            f.write(f"姓名:{name},性别:{sex},年龄:{age},学历:{level}\n")

    if sex == "女":

        func(name,age,level,sex)



    else:

        func(name,age,level)
posted @ 2019-07-18 14:41  挂机兄  阅读(165)  评论(0编辑  收藏  举报