# -*- 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')
年与时驰,意与日去,遂成枯落,
多不接世,悲守穷庐,将复何及。