今日内容
1.文件内光标移动案例
2.计算机硬盘修改数据的原理
3.文件内容修改
4.函数
5.函数的语法结构
6.函数的定义与调用
7.函数的分类
8.函数的返回值
9.函数的参数
1.文件内光标移动案例(了解)
import time
with open(r'a.txt','rb') as f:
f.seek(0,2)
while True:
line = f.readline()
if len(line) == 0:
#没有内容
time.sleep(0.5)
else:
print(line.decode('utf8'),end='')
2.计算机硬盘修改数据的原理(了解)
硬盘写数据可以看成是在硬盘上刻字 一旦需要修改中间内容 则需要重新刻字
因为刻过的字不可能从中间再分开
硬盘删除数据的原理
不是直接删除而是改变状态 等待后续数据的覆盖才会被真正删除
3.文件内容修改(了解)
修改文件内容的方式1:
with open(r'a.txt','r',encoding='utf8') as f:
data = f.read()
with open(r'a.txt','w',encoding='utf8') as f1:
f1.write(data.replace('jason','tony'))
修改文件内容的方式2:换地写
先在另外一个地方写入内容 然后将源文件删除 将新文件命名成源文件
import os
with open('a.txt', 'r', encoding='utf8') as read_f, \
open('.a.txt.swap', 'w', encoding='utf-8') as write_f:
for line in read_f:
write_f.write(line.replace('tony', 'kevinSB'))
os.remove('a.txt') # 删除a.txt
os.rename('.a.txt.swap', 'a.txt') # 重命名文件
4.函数
name_list = ['jason', 'kevin', 'oscar', 'jerry']
print(len(name_list))
突然len不准用
count = 0
for i in name_list:
count += 1
print(count)
统计列表内数据值个数的代码需要在很多地方使用
相同的代码需要在不同的位置反复执行
循环 相同的代码在相同的位置反复执行
函数 相同的代码在不同的位置反复执行
ps:相同的代码不是真正一模一样而是可以通过传入的数据不同而做出不同的改变
def my_len():
count = 0
for i in name_list:
count += 1
print(count)
my_len()
函数相当于是工具(具有一定功能)
不用函数
修理工需要修理器件要用锤子 原地打造 每次用完就扔掉 下次用继续原地打造
用函数
修理工提前准备好工具 什么时候想用就直接拿出来使用
5.函数的语法结构
def 函数名(参数):
函数注释
函数体代码
return 返回值
1.def
定义函数的关键字
2.函数名
命名等同于变量名
3.参数
可有可无 主要是在使用函数的时候规定要不要外界传数据进来
4.函数注释
类似于工具说明书
5.函数体代码
是整个函数的核心 主要取决于程序员的编写
6.return
使用函数之后可以返回给使用者的数据 可有可无
6.函数的定义与调用
1.函数在定义阶段只检测语法 不执行代码
def func():
pass
2.函数在调用阶段才会执行函数体代码
func()
3.函数必须先定义后调用
4.函数定义使用关键字def函数调用使用>>>:函数名加括号
如果有参数则需要在括号内按照相应的规则传递参数(后续详细讲解)
7.函数的分类
1.空函数
函数体代码为空 使用的pass或者...补全的
空函数主要用于项目前期的功能框架搭建
def register():
#注册功能
pass
2.无参函数
定义函数的时候括号内没有参数
def index():
print('from index function')
3.有参函数
定义函数的时候括号内写参数 调用函数的时候括号传参数
def func(a):
print(a)
8.函数的返回值
1.什么是返回值 调用函数之后返回给调用者的结果
2.如何获取返回值 变量名 赋值符号 函数的调用
res = func() # 先执行func函数 然后将返回值赋值给变量res
3.函数返回值的多种情况
3.1.函数体代码中没有return关键字 默认返回None
3.2.函数体代码有return 如果后面没有写任何东西还是返回None
3.3.函数体代码有return 后面写什么就返回什么
3.4.函数体代码有return并且后面有多个数据值 则自动组织成元组返回
3.5.函数体代码遇到return会立刻结束
9.函数的参数
1.形式参数 在函数定义阶段括号内填写的参数 简称'形参‘
2.实际参数 在函数调用阶段括号内填写的参数 简称'实参'
形参与实参的关系
形参类似于变量名 在函数定义阶段可以随便写 最好见名知意
def register(name,pwd):
pass
实参类似于数据值 在函数调用阶段与形参临时绑定 函数运行结束立刻断开
register('jason'123) 形参name与jason绑定 形参pwd与123绑定