# -*- coding: utf-8 -*- # @Time : 2018/12/28 14:25 # @Author : Endless-cloud # @Site : # @File : 08 课后作业.py # @Software: PyCharm ''' # 2.写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。 ''' # # def func1(inpuy_list): # new_list =[] # for i in range(len(inpuy_list)): # if i %2 ==1: # new_list.append(inpuy_list[i]) # return new_list # # [ input_list[i] if i %2 ==1 in range(len(input_list))] # input_list =input('请输入一段话') # l2 =func1(input_list) # print(l2) ''' # 3.写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。 ''' # def func2 (int_list): # # if len(int_list): # # print('字符长度大于5') # # else:print('字符长度小于5') # # return print('ok') if len(int_list)>5 else print('not ') # int_list = '>>>>>>' # func2(int_list) ''' # 4.写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。 ''' # def func3 (input_list): # if len(input_list)>2: # input_list =input_list[0:2] # return input_list # intput_list = ['1','2','3','4','5'] # print(func3(intput_list)) ''' # 5.写函数,计算传入函数的字符串中,[数字]、[字母]、[空格] 以及 [其他]的个数,并返回结果。 ''' # l1 = '123ad ' # count_num =0 # count_zimu =0 # count_space =0 # count_qita =0 # for i in l1: # if i.isdigit(): # count_num+=1 # elif i.isalpha(): # count_zimu+=1 # elif i ==' ': # count_space+=1 # else:count_qita+=1 # print(count_num,count_zimu,count_space,count_qita) # def func4 (input_str): # count_num = 0 # count_zimu = 0 # count_space = 0 # count_qita = 0 # for i in input_str: # if i.isdigit(): # count_num += 1 # elif i.isalpha(): # count_zimu += 1 # elif i == ' ': # count_space += 1 # else: # count_qita += 1 # return count_num ,count_zimu,count_space,count_qita # int_str =input('请输入内容') # print(func4(int_str)) ''' # 6.写函数,接收两个数字参数,返回比较大的那个数字。 ''' # def func5 (a,b): # return print(a) if a>b else print(b) # func5(8,5) ''' # 7.写函数,检查传入字典的每一个value的长度,如果大于2, 那么仅保留前两个长度的内容,并将新内容返回给调用者。 # dic = {"k1": "v1v1", "k2": [11,22,33,44]} # PS:字典中的value只能是字符串或列表 # ''' # dic = {"k1": "v1v1", "k2": [11,22,33,44]} # def func6(dic): # for i in dic: # if len(dic[i])>2: # dic[i]=dic[i][:2] # return dic # # print(func6(dic)) ''' 8.写函数,此函数只接收一个参数且此参数必须是列表数据类型, 此函数完成的功能是返回给调用者一个字典,此字典的键值对为此列表的索引及对应的元素。 例如传入的列表为:[11,22,33] 返回的字典为 {0:11,1:22,2:33}。 ''' # def func7(int_list): # if type(int_list) !=list: # print('请输入列表') # else: # dic ={} # for i in range(len(int_list)): # dic[i]=int_list[i] # return dic # # print(func7(['a','b','c','d'])) # int_list =[1,2,3,423] # if type(int_list) != list: # print('请输入列表') # else: # dic = {} # for i in range(len(int_list)): # dic[i] = int_list[i] # print(dic) ''' 9.写函数,函数接收四个参数分别是:姓名,性别,年龄,学历。用户通过输入这四个内容, 然后将这四个内容传入到函数中,此函数接收到这四个内容,将内容追加到一个student_msg文件中。 # ''' # def func7(name,sex,age,xueli): # # with open('f:/a.txt','a',encoding='utf-8') as f : # f.write(name ) # f.write(sex) # f.write(age) # f.write(xueli) # print('已经写入文件') # name =input('亲输入名字') # sex =input('亲输入性别') # age =input('亲输入年龄') # xueli = input('亲输入学历') # func7(name,sex,age,xueli) ''' # 10.对第9题升级:支持用户持续输入,Q或者q退出,性别默认为男,如果遇到女学生,则把性别输入女。 ''' def func8(name,age,xueli,sex='男',): with open('f:/b.txt','a',encoding='utf-8') as f : f.write('名字是{} 性别是{} 年龄是{} 学历是{}'.format(name,sex,age,xueli)) print('文件写入成功') while 1: name = input('亲输入名字') sex =input('亲输入性别') age = input('亲输入年龄') xueli = input('亲输入学历') if xueli =='q': print(1) break if sex != '女': func8(name, age, xueli) print(2) else: func8(name,age,xueli,sex) print(2) ''' # 写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成整个文件的批量修改操作(升级题)。 ''' import os def func9(tname,old_t,new_t): with open(tname,'r',encoding='utf-8') as f1,open('bbbak.txt','a',encoding='utf-8') as f2: old_te =f1.read() new_te =old_te.replace(old_t,new_t) f2.write(new_te) os.remove(tname) os.rename('bbbak.txt',tname) print('已经改完内容') func9('bb.txt','alex','taibai')