# def make():
# print('掏出手机')
# print('打开微信')
# print('摇一摇')
# print('聊一聊')
# print('走不走')
# print('走...jd')
#
# make()
# def 关键字 定义(申明) 一个函数
# def make():
# # 函数体
# 注意: 定义后的函数不调用是不执行的
# 函数的调用:
# 函数名+() == 函数的调用
#
# def make():
# print(1)
#
# make()
#
# def make():
# print(2)
#
# make()
# def make():
# print(2)
#
# make()
# 先定义后调用
# 函数的执行过程
# def make():
# print(1)
# print(2)
# print(3)
# # print(make)
# # 函数的内存地址 <function make at 0x0000012E2C8F1E18>
# make()
# 定义 -- 调用 -- 函数体的代码
# 函数的返回值
# def make():
# print('掏出手机')
# print('打开陌陌')
# print('找个妹子')
# print('询问一番')
# print('盘她')
# return 1
# print('盘完了')
#
# ret = make()
# print(ret)
# 返回值单个就它本身,多个就是一个元组
# 返回值写了return 没有写内容返回的就是None
# 没有写return 返回的也是None
# return下面的代码都不执行,并且还结束了这个函数
# 返回值返回给调用者
# s = '盘她'
# print(s*2)
# def make():
# print(1)
# return 2*'盘她'
# ret = make()
# print(ret)
# def make():
# print(1)
# print(2)
# print(3)
# return None
#
# input(make())
# 函数名加小括号 不管在什么位置就是在调用函数
# def make():
# print('掏出手机')
# print('打开微信')
# print('摇一摇')
# print('聊一聊')
# print('搞一搞')
# make()
# print('去医院看看')
# make()
# print('看看书')
# make()
# make()
# make()
# 函数的参数
# def make(char,addr,sex): # 形参 char = '探探'
# print('掏出手机')
# print('打开%s'%char)
# print('找一个%s,%s'%(addr,sex))
# print('聊一聊')
#
# make('探探','北京','萝莉') # 实参
# 将实参传递给形参的过程 传参
# 位置参数:
# def make(char,addr,sex)
# make('探探','北京','萝莉')
# def func(a,b):
# c = a + b
# return c
#
# print(func(10,20))
# def func(a,b):
# if a>b:
# return a
# else:
# return b
# print(func(9,9))
# def func(a,b):
# # c = a if a>b else b
# # # return c
# return a if a>b else b
# print(func(10,9))
# 条件成立的结果 条件 条件不成立的结果
# c = a if a>b else b
# def make(a,b,d=1,e=0):
# print(a,b,d)
# make(1,2)
# def user_info(name,age,sex='男'):
# print(name,age,sex)
#
# user_info('粉哥哥',48,'不详')
# while 1:
# input_list = input('name,age,sex').split(',')
# if len(input_list) > 2:
# name, age, sex = input_list
# user_info(name, age, sex)
# else:
# name, age= input_list
# user_info(name, age)
# def func(a,b,c,d=1): # 形参 (位置+默认)混合形参
# print(a,b,c,d)
#
# func(1,2,3) # 位置参数
# def func(a,b,c,d=1): # 形参 (位置+默认)混合形参
# print(a,b,c,d)
#
# func(1,2,3,d=3) # 实参 (位置+关键字)混合实参
# def func(a,b,c,d): # 形参 (位置+默认)混合形参
# print(a,d)
#
# func(2,d=1) # 实参 (位置+关键字)混合实参
# 位置参数 > 关键字参数
def func():
print(1)
# if True:
# # func()
# func()
作业:
# 2.写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。
'''def fun(l1):
l2=[]
for i in range(len(l1)):
if (i+1)%2==1:
l2.append(l1[i])
return (l2)
print(fun([1,2,3,4,5,6,7,8]))'''
# 3.写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。
'''def function(a):
if len(a)>5:
print('长度大于5')
else:
print('长度小于等于5')
function([1,2,3,4,5])'''
# 4.写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者
'''def lis_fuc(lis1):
if len(lis1)>2:
lis2 = lis1[0:2:1]
print(lis2)
else:
lis2=lis1
print(lis2)
lis_fuc([1,2])
lis_fuc([1,2,3,4,5])'''
# print(ord('a'))
# print(ord('z'))
# print(ord('A'))
# print(ord('Z'))
# print(ord('1'))
# print(ord('9'))
# print(ord('0'))
# 5.写函数,计算传入函数的字符串中,[数字]、[字母]、[空格] 以及 [其他]的个数,并返回结果。
'''
def fuc():
inp = input('请输入内容')
d = 0
al = 0
sp = 0
it = 0
for i in range(len(inp)):
if 65<=ord(inp[i])<=90 or 97<=ord(inp[i])<=122:
al=al+1
elif 48<=ord(inp[i])<=57:
d=d+1
elif i=='':
sp=sp+1
else:
it=it+1
print(d,al,sp,it)
fuc()'''
# 6.写函数,接收两个数字参数,返回比较大的那个数字。
'''def comp(a,b):
c=a if a > b else b
return c
a = input('a=')
b = input('b=')
print(comp(a, b))'''
# 7.写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
# dic = {"k1": "v1v1", "k2": [11,22,33,44]}
# PS:字典中的value只能是字符串或列表
# def dic_fuc():
# dic = {"k1": "v1v1", "k2": [11,22,33,44]}
# for i in dic:
# if len(dic[i])>2:
# dic[i]=dic[i][0:2:1]
# print(dic)
# dic_fuc()
#或
'''
def dic_fuc(v1v1):
dic = {"k1": v1v1, "k2": [11,22,33,44]}
for i in dic:
if len(dic[i])>2:
dic[i]=dic[i][0:2:1]
print(dic)
dic_fuc('asd123')'''
# 8.写函数,此函数只接收一个参数且此参数必须是列表数据类型,此函数完成的功能是返回给调用者一个字典,
# 此字典的键值对为此列表的索引及对应的元素。
# 例如传入的列表为:[11,22,33] 返回的字典为 {0:11,1:22,2:33}。
'''def lis_dic(lis1):
dic={}
for i in range(len(lis1)):
dic[i]=lis1[i]
print(dic)
lis_dic([1,2,3,4,5,6,7,8,90])'''
# 9.写函数,函数接收四个参数分别是:姓名,性别,年龄,学历。
# 用户通过输入这四个内容,然后将这四个内容传入到函数中,此函数接收到这四个内容,将内容追加到一个student_msg文件中。
'''
def st_msg(name,sex,age,edu):
msg='姓名:'+name+' 性别:'+sex+' 年龄:'+age+' 学历:'+edu
with open('student_msg','a',encoding='utf-8') as f1:
f1.write(msg)
print(msg)
while 1: #注意input()中只能有1个参数所有字符串用逗号隔开再转列表
msg_list=input('name,sex,age,edu').split(',')
name,sex,age,edu = msg_list
st_msg(name, sex, age, edu)'''
# 10.对第9题升级:支持用户持续输入,Q或者q退出,性别默认为男,如果遇到女学生,则把性别输入女。
'''
def st_msg(name,age,edu,sex='男'):
msg = '姓名:' + name + ' 性别:' + sex + ' 年龄:' + age + ' 学历:' + edu
with open('student_msg', 'a', encoding='utf-8') as f1:
f1.write(msg)
print(msg)
while 1: # 注意input()中只能有1个参数所有字符串用逗号隔开再转列表
msg_list = input('name,sex,age,edu').strip().split(',')
if len(msg_list)<4:
name, age, edu = msg_list
st_msg(name, age, edu)
elif len(msg_list)==4:
name, sex, age, edu = msg_list
st_msg(name, age, edu,sex)'''
#
# 11.写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成整个文件的批量修改操作(升级题)。
def file_op(name,content,content1):
with open(name,'a',encoding='utf-8') as f1:
for old_line in f1:
new_line = old_line.replace(content1,content)
f1.write(new_line)
file_op()