函数练习一
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)