python基础 day9

#文件处理
#打开文件
#open('路径','打开方式','编码规则')
#打开方式,默认是读
#r,w,a,r+,w+,a+,b
#编码一般用utf-8
#操作文件
#读
#一次性读 read()
#readlines()一次性读
#一行一行读 readline()
#不知道在哪结束
#视频,图片bytes 按照字节读
#for循环-----最好
# 写
#write()
#光标-----文件指针
#seek()指定光标移动到当前的位置
#tell()获取当前光标的位置
#turncate()截取文件
#关闭文件
#close()
#修改文件
#文件是不能修改的
with open('小护士班主任',encoding='utf-8') as f,open('小护士班主任.bak','w',encoding='utf-8') as f1:
    for line in f:
        if '星儿' in line:
            line=line.replace('星儿','小丽')
        #写文件
        f1.write(line)
import os
os.remove('小护士班主任') #删除文件
os.rename('小护士班主任.bak','小护士班主任')    #重命名文件
修改文件

 初识函数

# def my_len(s):
# i=0
# for k in s:
# i+=1
# return i
# ret=my_len('金老板小护士')
# print(ret)
# length=mlen(lis)  #传递参数 实参
# print(length)# lis=[1,2,3,4,5]
# # print(len(s)) #内置函数
# def mlen(s): #自定义函数 接收参数 形参
# i=0
# for k in s:
# i+=1
# # print(i)
# return i #返回值

#函数 定义了之后可以在任何地方调用
#返回值 默认返回None
#没有返回值
#不写return
#只写return 结束一个函数
#return None
#返回一个值
#可以返回任何数据类型
#只要返回就可以接收到
#如果一个程序有多个return,执行第一个
#返回多个值
#多个返回值用多个变量接收,有多少变量就用多少返回值接收
#用一个变量接收,返回的是一个元组

#函数的语法
#形参和实参的概念
# 函数的潜逃
# def f1(li):
# for i in li:
# print(i)
#
# def f2(li):
# f1([1, 2, 3, 4])
# for i in li:
# print(i)
#
# f2([1,2,3,4])

#参数
#没有参数 括号里不写内容
#一个参数 传什么就是什么
#多个参数
#位置参数

# def my_sum(a,b):
# res=a+b #result
# return res
# res = my_sum(1,2)
# print(res)
#站在实参的角度上 可以按位置传参,也可以按关键字传参.
#可以混着传,但必须先按位置参,再按关键字传参
#不能给同一个参数传多个值
#站在形参的角度上
#位置参数 必须传,且有几个参数就传几个参数

def classmate(name,sex):
print('%s : %s'%(name,sex))

classmate('小丽','女')
classmate('大猛','男')
classmate('小猛','男')

#参数
#没有参数 定义函数和掉用函数时什么都不写
#有一个参数 传什么就是什么
#有多个参数
#站在实参的角度上
#可以按位置传参,也可以按关键字传参,也可以混传,但是必须按位置开头,
#一个参数不能赋多个值
#站在形参的角度上
#位置参数:必须传,有几个参数就传几个值
#默认参数:可以不传的参数,如果不传就用默认的参数,如果传了就使用传的参数
#先定义位置参数,*args,再定义默认参数
#动态参数:可以接收任意个参数#接收的是按照位置传参*args,接收的是按照关键字传参:**kwargs
# def my_sum(a,b):
# res=a+b
# return res
# res=my_sum(4,b=5)
# print(res)

# def classmate(name,sex='男'):
# print('%s : %s'%(name,sex))
# classmate('金老板')
# classmate('大猛')
# classmate('小猛')
# classmate('昊天')
# classmate('小丽','女')
#只有定义函数的时候

# def my_sum(*args): #元组
# sum=0
# for i in args:
# sum+=i
# return sum
# print(my_sum(1,2,3))
# print(my_sum(1,2,3,4,5))
# def func(**kwargs):#字典
# print(kwargs)
# func(a=1,b=2,c=3,d=4)
# func(a=1,b=2,c=3)
# func(a=1,b=2,)
#顺序:位置参数,*args,默认参数,**kwargs
# def func(*args,default=2,**kwargs):
# print(args,default,kwargs)
# func(1,2,3,4,a='123',b='456')
#动态参数的另一种传参方式
# def func(*args):
# print(args)
# func([1,3,5,7,9])
# l=[1,3,5,7,9]
# func(*l)
# def func(**kwargs):
# print(kwargs)
# func(a=1,b=2)
# dic={'a':1,'b':2}
# func(**dic)
#函数的注释
def func():
'''
函数功能参数
:return: 返回值
'''
pass
# def qqxing(k,l = {}):
# # l.append(1)
# l[k] = 'v'
# print(l)
#
# qqxing(1) #[1]
# qqxing(2) #[1,1]
# qqxing(3) #[1,1,1]

# 如果默认参数的值是一个可变数据类型,
# 那么每一次调用函数的时候,
# 如果不传值就公用这个数据类型的资源
posted @ 2019-03-25 21:00  遗忘天际  阅读(127)  评论(0编辑  收藏  举报