计算机硬盘修改数据的原理
文件内容修改
函数前戏
函数的语法结构
函数的定义与调用
函数的分类
函数的返回值
函数的参数
计算机硬盘修改数据的原理
硬盘写数据可以理解成是在硬盘上刻字 一旦需要修改数据中间内容 则需要重新刻字,因为刻过的字不可能从中间再分开
硬盘删除数据的原理
不是直接删除而是改变状态 等待后续数据的覆盖才会被真正删除
文件内容修改(了解)
修改文件内容的方式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 (r'a.txt' , 'r' , encoding='utf8' ) as read_f, open ('.a.txt.swap' , 'w' , encoding='utf8' ) as write_f:
for line in read_f:
write_f.write(line.replace('tony' , 'kevinSB' ))
os.remove('a.txt' )
os.rename('.a.txt.swap' , 'a.txt' )
函数前戏
name_list = ['jason' , 'kevin' , 'oscar' , 'jerry' ]
print (len (name_list))
突然len 不准用了
count = 0
for i in name_list:
count += 1
print (count)
"""
循环:相同的代码在相同的位置反复执行
函数:相同的代码在不同的位置反复执行
ps:相同的代码不是真正一模一样而是可以通过传入的数据不同而做出不同的变化
"""
name_list = ['jason' , 'kevin' , 'oscar' , 'jerry' ]
def my_len ():
count = 0
for i in name_list:
count += 1
print (count)
my_len()
"""
函数相当于是工具(具有一定功能)
不用函数
修理工需要修理器件要用锤子,原地打造,每次用完就扔掉,下次用继续原地打造
用函数
修理工提前准备好工具,什么时候想用就直接拿出来使用
"""
函数的语法结构
def 函数名 (参数 ):
'''函数注释'''
函数体代码
return 返回值
1. def
定义函数的关键字
2. 函数名
命名等同于变量名
3. 参数
可有可无,主要是在使用函数的时候规定要不要外界传数据进来
4. 函数注释
类似于工具说明书
5. 函数体代码
是整个函数的核心,主要取决于程序员的编写
6. return
使用韩式之后可以返回给使用者的数据,可有可无
函数的定义与调用
1. 函数在定义阶段只检测语法,不执行代码
def func ():
pass
2. 函数在调用阶段才会执行函数体代码
func()
3. 函数必须先定义后调用
4. 函数定义使用关键字def 函数调用使用>>>:函数名加括号
如果有参数则需要在括号内按照相应的规则传递参数
函数的分类
1. 空函数
函数体代码为空,使用的pass 或者...补全的
空函数主要用于项目前期的功能框架搭建
def register ():
"""注册功能"""
pass
2. 无参函数
定义函数的时候括号内没有参数
def index ():
print ('from index function' )
3. 有参函数
定义函数的时候括号内参数,调用函数的时候括号传参数
def func ():
print (a)
函数的返回值
1. 什么是返回值
调用函数之后返回给调用者的结果
2. 如何获取返回值
变量名 赋值符号 函数的调用
res = fun()
3. 函数返回值的多种情况
3.1 .函数体代码中没有return 关键字,默认返回None
def l1 ():
print ('我是大帅哥' )
res = l1()
print (res)
3.2 .函数体代码有return 如果后面没有写任何东西还是返回None
def l1 ():
print ('我是大帅哥' )
return
res = l1()
print (res)
3.3 .函数体代码有return 后面写什么就返回什么
def l1 ():
print ('我是大帅哥' )
return 123 ,321
res = l1()
print (res)
3.4 .函数体代码有return 并且后面有多个数据值,则自动组织成元组返回
3.5 .函数体代码遇到return 会立刻结束
def l1 ():
return
print ('我是大帅哥' )
res = l1()
print (res)
函数的参数
形式参数
在函数定义阶段括号内填写的参数,简称'形参’
实际参数
在函数调用阶段括号内填写的参数,简称' 实参'
"""
形参与实参的关系:
形参类似于变量名,在函数定义阶段可以随便写,最好见名知意思
def register(name, pwd):
pass
实参类似于数据值,在函数调用阶段与形参临时绑定,函数运行结束立刻会断开
def register(name, pwd):
pass
register(' jason', 123) 形参name与jason绑定,形参pwd与123绑定
"""
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现