网站做视频好不好,一个域名绑定多个网站,房地产迎来4个好消息,邯郸市网站建设一 文件处理补充 控制文件中光标移动 1 f.read(n): l.文件打开方式为文本模式的时,代表读取N个字符 ll.文件打开方式为b模式时,读取N个字节 强调:只有在read(n)模式下 N代表字符个数,除此之外的是以字节为单位 2 f.seek(): 光标移动是以字节为单位的整数移动. 三种模式:(分别为…一 文件处理补充 控制文件中光标移动 1 f.read(n): l.文件打开方式为文本模式的时,代表读取N个字符 ll.文件打开方式为b模式时,读取N个字节 强调:只有在read(n)模式下 N代表字符个数,除此之外的是以字节为单位 2 f.seek(): 光标移动是以字节为单位的整数移动. 三种模式:(分别为0 1 2 代表) 0(默认模式):参照文件开头 往后数 该模式既可以在t下用 也可以在b下用 1模式:参照光标当前位置往下数 2模式:参照文件末尾往下数 其中1和2必须在b模式下进行但无论哪种模式都是以bytes为单位移动的 f.seek(3,0) 3--字节0--方式 4 f.truncate(3)截断文件在第三个字符后添加内容/删除之后的内容 其文件的打开方式必须可写但是不能用w或w等方式打开直接清空文件所以truncate要在r或a或a等模式下测试效果 5 f.tell光标移动到文件末尾 例: import time
with open(access.log,moderb)as f:f.seek(0,2)while True:linef.readline()if len(line)0:time.sleep(0.1)else:print (line,decode(utf-8),end ) 二 函数 l 什么是函数 在程序中具备某一功能的工具函数 实现准备好工具函数的定义 遇到应用场景 拿来就用函数的作用 函数分两类:内置函数 自定义函数 ll 为何要用函数 1 代码冗余 2 程序的组织结构不清晰 可读性差 3 扩展性差 lll 如何用函数: 函数的使用必须遵循一个原则 1 先定义 先定义
def 函数名(参数1 参数2 参数3)
文档注释
代码1代码2代码3
return(返回)值2 后引用 函数名() #1. 定义阶段: 只检测语法不执行代码def func():print(from func 1)#2. 调用阶段: 开始执行函数体代码func()# 定义
def func():print(from func)bar()def bar():print(from bar)# 调用
func()函数的定义与调用三 定义函数的三种形式 l 无参函数 ll 有参函数 lll 空函数 1. 无参函数
def func():print(from func)func()# 2. 有参函数
def max2(x,y):# x1# y2if x y:print(x)else:print(y)max2(1,2)
max2(3,4)# 3. 空函数
def register():pass四 调函数的三种形式 l 语句形式 ll 表达式形式 lll 函数的调用可以当作另外一个函数的参数传入 # 1 语句形式
def func():print(from func)func()
# 2 表达式形式
def max2(x,y):if x y:return xelse:return yresmax2(110,220) * 12
print(res)reslen(hello)
print(res)# 3 函数的调用可以当作另外一个函数的参数传入
def max2(x,y):if x y:return xelse:return yresmax2(max2(7,9),2)
print(res)调用函数的三种形式五 函数的返回值 1 什么是函数的返回值 返回值是函数体代码的运行成果 2 为何要有返回值 需要拿到函数的处理结果做进一步的处理,则函数必须有返回值 3 如何用:return返回值特点 注: 返回的值没有类型限制,也没有个数限制 l return或者函数没return:返回值为None ll return:返回的就是该值本身 lll return值1 值2 值3:返回元组(值1 值2 值3) def func():return 1,1.2,aaa,[1,2,3]pass
resfunc()
print(res) #(1, 1.2, aaa, [1, 2, 3])lV return是函数结束运动的标志,函数内可以有多个return,但只要执行一次函数就立即结束,并且将return后的值当作本次调用的结果返回. def func():print(aaaa)return 1print(bbb)return 2print(ccc)return 3func() #aaaa 只返回第一个return的值四、函数的参数 1.形参在定义函数时括号内指定参数变量名 1位置形参在定义阶段按从左到右顺序依次定义的形参 特点必须被传值 def func(x,y,z):print(x,y,z)func(1,2,3) #有且只有三个值多少都会报错 2) 默认形参在定义阶段就已经为某个形参赋值 特点在定义阶段就已经有值意味着调用阶段可以不用为其传值但若传值则以传入的值为准 默认形参 注意位置形参必须放在默认形参的前面 3) 形参中*与**的用法 I. 形参中带**会将溢出的位置实参存成元组的形式然后赋值其后变量名def func(x,y,*args): print(x,y,args)func(1,2,3,4,5,6) # 1 2 (3, 4, 5, 6)II.形参中带****会溢出的关键字实参存成字典的格式然后赋值其后变量名def func(x,y,**kwargs): print(x,y,kwargs)func(1,y2,z3,m1,n2) # 1 2 {z: 3, m: 1, n: 2} 2.实参在调用函数时括号内传入的值变量值 1位置实参在调用阶段按从左到右依次传入的值 特点这种传值方式会与形参一一对应 func(2,1,3) 2) 关键字实参在调用阶段按keyvalue格式传值 特点可完全打乱位置但仍可为指定形参传值 func(z3,y2,x1) 注意可以混用关键字实参与位置实参但是
1. 同一个形参只能被赋值一次
2. 位置实参必须跟在关键字实参的前面
func(1,z3,y2)
func(1,z3,y2,x333)
func(x1,2,z3) # 报语法错误 3 )实参中*与**的用法 I. 实参中带*先将实参打散成位置实参然后再与形参做对应def func(x,y,z): print(x,y,z)func(1,[2,3]) # 报错func(*[1,2,3]) # 1,2,3func(*hello) # 报错只需要三个值func(*hel) #h e l II.实参中带**先将实参打散成关键字实参然后再与形参做对应def func(x,y,z): print(x,y,z)func(**{x:1,z:3,y:2}) # 1 2 3 转载于:https://www.cnblogs.com/zhouyuquan/p/10038850.html