今日内容概要
-
文件内光标的移动实战演练
-
计算机硬盘存储数据的原理
-
文件内容修改
-
函数简介
-
函数的语法结构
-
函数的定义与调用
今日内容概要
文件内光标移动的实战演练
根据上一章我们讲到文件的读写模式read只有一次读的功能,因为读取的光标跟着文本走到了最后,以为后面已经没有数据了就不走,而我们可以使用光标的移动来实行 就算没有文本文档也能移动的功能
import time with open(r'a.txt','rb') as f : f.seek(0,2) # 这里的意思是光标移动的数量是0,起始位置是在末尾 while True: line = f.readline() if len(line) == 0 : #判断linede 长度是不是0 #没有内容的意思 time.sleep(0.5)#光标就停留0.5秒 else: print(line.decode('utf8'),end='')
计算机硬盘修改数据的原理(了解即可)
硬盘修改数据原理:
平时我们在使用计算机的时候往往都会产生许多的数据,会进行保存,而要进行永久的保存都是保存在计算机的硬盘里,而在进行数据保存的时候,实际上就是像是在计算机硬盘上进行刻字,而在这个过程中一旦出现错误想要修改中间的内容,就需要重新刻字,因为刻过得字是不能从中间在分开的
硬盘删除数据的原理:
计算机硬盘上的数据就像上面说的一样,是刻上去的,而平时我们在删除数据的时候以为是清除,其实只是改变了数据的状态,需要等待后续有数据储存到这个位置才会把以前的数据覆盖,从而才会被真正的删除。
文件内容修改(了解即可)
修改文件内容的方式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(‘被修改的数据’,‘修改后的数据’))
修改文件内容的方式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') # 重命名文件
函数简介
循环
相同的代码在相同的位置反复执行
函数
相同的代码在不同的位置反复执行
ps :相同的代码不是真正一模一样而是可以通过传入的数据不同而做出不同的改变
而函数的存在就相当于是一个具备一些功能的工具
不使用函数的情况下想要执行某些事情就需要每次都反复的创造使用丢弃,再次使用就需要再次创造
在程序设计的过程中,为了避免反复重复的敲一下相同的代码,就可以使用函数来进行提高代码的复用率和可维护性。
复用率:
在写代码的过程中有一些代码的功能是相同的,操作也是一样的,只不过是针对不同的数据来进行相同的操作:但如果使用函数就能将这种功能写成函数模块,想要使用该功能的时候只需要调用就可以了
代码的可维护性:
使用函数以后,实现了代码的复用,某个功能需要核查或修改是只需要核查或者修改此功能对应的函数就可以了。
函数的语法结构
def 函数名(参数):
“函数注释”
函数体代码
return 返回值
1.def
定义函数关键字
2.函数名
命名方式与变量名相同
3.参数
可有可无,主要是使用函数的时候规定要不要外界传数据进来
4.函数注释
类似于使用函数的说明书
5.函数体代码
是整个函数的核心,这个主要就取决于程序员的编写
6.return
使用函数之后可以返回给使用者的数据,也是可有可无的,但是在执行函数的子代码的时候遇到return就会立即结束函数体代码
函数的定义与调用
1.函数在定义阶段只检测语法,不执行代码
def func():
pass
2.函数在调用阶段才会执行函数体代码
func()
3.函数必须先定义然后才能调用,函数名后的一对括号是不能省略的。在实际应用中,稍复杂的函数通常都会包含一个或多个参数。
4.函数定义使用关键字def函数调用使用:函数名加括号
如果有参数则需要在括号内按照相应的规则传递参数
函数的分类
1.空函数
函数体代码为空,使用pass或者...进行补全
空函数主要用于前期的功能框架搭建
def register():
"""xx功能"""
pass
2.无参函数
定义函数的时候括号内没参数
def index():
print('form index function')
3.有参函数
定义函数的时候括号内写参数,调用函数的时候括号传参数
def func(a):
print(a)
函数的返回值
1.什么是返回值
函数的返回值是函数执行完成后,系统根据函数的具体定义返回给外部调用者的值。
2.如何获取返回值
变量名 赋值符号 函数的调用
res = func()# 先执行func函数,然后将返回值赋给变量res
3.函数返回值的多种情况
3.1 函数体代码中没有return关键字,就会返回默认值None
3.2.函数体代码有return,如果后面没有写任何的东西还是会返回默认值None
3.3函数体代码return,后面写什么就返回什么
3.4函数体代码有return并且后面有多个数据值,则自动组织成元组返回
3.5 函数体代码遇到return就会立刻结束
函数的参数
在编程语言中,函数定义时用的是形式参数,调用时用的是实际参数,他们的功能就是数据的传输
- 形式参数
形式参数是在定义
函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传入的参数。,简称“形参”
- 实际参数
在调用
时传递给函数的参数。实际参数可以是常量、变量、表达式、函数等。无论实际参数是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。简称“实参”
在调用函数时,实参将赋值给形参。必须注意实参的个数、类型应与形参要一一对应
,并且实参必须要有确定的值
。形参的作用域一般仅限函数体内部,而实参的作用域根据实际设置而定。
形参与实参的关系
形参类似于变量名 在函数定义阶段可以随便写 最好见名知意
def register(name,pwd):
pass
实参类似于数据值 在函数调用阶段与形参临时绑定 函数运行结束立刻断开
register('jason',123) 形参name与jason绑定 形参pwd与123绑定
标签:函数,形参,python,代码,初识,参数,txt,数据
From: https://www.cnblogs.com/qiguanfusu/p/16772768.html