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