1,写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。
def func(lst): return list(lst[1::2]) print(func([1,2,3,4,5,6,7,8,9]))
2,写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。
def func(s): return len(s) > 5 print(func("hahahahah"))
3,写函数,检查传入列表的长度,如果大于2,将列表的前两项内容返回给调用者。
def func(lst): if len(lst)>2: return lst[0],lst[1] print(func([1,2,3,4,5,6]))
4,写函数,计算传入函数的字符串中, 数字、字母、空格 以及 其他内容的个数,并返回结果。
def func(s=""): shizi = 0 zimu = 0 kongge = 0 qita = 0 for c in s: if c.isdigit(): shizi +=1 if c.isalpha(): zimu +=1 if c.isspace(): kongge +=1 else: qita += 1 return shizi,zimu,kongge,qita print(func("jin san pan 123$$$\n\t"))
5,写函数,接收两个数字参数,返回比较大的那个数字。
def func(a,b): return a if a > b else b print(func(5,6))
7,写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
dic = {"k1": "v1v1", "k2": [11,22,33,44]}
PS:字典中的value只能是字符串或列表
def func(dic = {}): for k ,v in dic.items(): if len(v) > 2: dic[k] = v[:2] return dic print(func({"k1":"v1v2","k2":[11,22,33,44,]}))
8,写函数,此函数只接收一个参数且此参数必须是列表数据类型,此函数完成的功能是返回给调用者一个字典,此字典的键值对为此列表的索引及对应的元素。例如传入的列表为:[11,22,33] 返回的字典为 {0:11,1:22,2:33}。
def func(lst): if type(lst)!= list: print("滚回去,拿列表再来") return dic = {} for i in range(len(lst)): dic[i] = lst[i] return dic print(func([11,22,33]))
9,写函数,函数接收四个参数分别是:姓名,性别,年龄,学历。用户通过输入这四个内容,然后将这四个内容传入到函数中,此函数接收到这四个内容,将内容追加到一个student_msg文件中。
def func(name,gender,age,edu): f = open("student_msg",mode="a",encoding="utf-8") f.write(name+"_"+gender+"_"+age+"_"+edu+"\n") f.flush() f.close() n = input("请输入你的姓名:") g = input("请输入你的性别:") a = input("请输入你的年龄:") e = input("请输入你的学历:") func(n,g,a,e)
10,对第9题升级:支持用户持续输入,Q或者q退出,性别默认为男,如果遇到女学生,则把性别输入女。
def func(name,age,edu,gender= "男"): f = open("student_msg",mode="a",encoding="utf-8") f.write(name+"_"+gender+"_"+age+"_"+edu+"\n") f.flush() f.close() while 1: n = input("请输入你的姓名:") g = input("请输入你的性别:") a = input("请输入你的年龄:") e = input("请输入你的学历:") if g == "": func(n,a,e) else: func(n,a,e,g,) content = input("信息录入完毕,是否继续(Q或q退出):") if content.upper() == "Q": break
11,写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成整个文件的批量修改操作(升级题, 此题认真阅读和理解. 应该有3个参数才对)。
import os def modify_file(file,old,new): with open(file,mode="r",encoding="utf-8") as f1 ,open(file+"_副本",mode="w",encoding="utf-8") as f2: for line in f1: line = line.replace(old,new) f2.write(line) os.remove(file) os.replace(file+"_副本",file) modify_file("student_msg","男","不详")
12,写一个函数完成三次登陆功能,再写一个函数完成注册功能(升级题)
def regist(): uname = input("请输入要注册的用户名:") f = open("userinfo",mode="r",encoding="utf-8") for line in f : un = line.split("_")[0] if un == uname: print("用户名注册过重新输入") return else: print("用户名可用") f.close() upwd = input("请输入要注册的密码:") f = open("userinfo", mode="a", encoding="utf-8") f.write(uname+"_"+upwd +"\n") f.flush() f.close() def login(): count = 1 while count <=3: uname = input("请输入你的用户名:") upwd = input("请输入你的密码:") f = open("userinfo",mode="r",encoding="utf-8") for line in f: u,p = line.strip().split("_") if uname == u and upwd == p: print("登录成功") return True else: print("登录失败,用户名密码不正确") count += 1 regist() login()