关于文件的最后补充与初步认识函数

内容概要

  • 文件内光标的移动
  • 文件内数据的修改
  • 函数(非数学概念中的函数)

详情

1.文件内光标的移动

在当前项目下建立文本文件
with open(r'a.txt', 'rb') as f:
	print(f.read(4).decode('utf8'))  # 每个中文三个字节 所以四个字节会报错
	print(f.tell())  # # 查看光标移动了多少个字节 0
	f.seek(3, 1)
	print(f.read().decode('utf8'))  # 好学习 天天向上 中国最牛逼 我爱中国
'''
控制文件内光标的移动  f.seek()
f.seek(offset,whence)
	offset
		表示位移量
		始终是以字节为最小单位
		整数从左往右移动
		负数从右往左移动
	whence
		表示模式
		0:以文件开头为参考系(支持t b 两种模式)
		1:以当前位置为参考系 只支持 b 模式
		2:以文件末尾为参考系 只支持 b 模式
'''

image

image
image
image

2.文件的内容修改

# 方式1 覆盖
with open(r'a.txt','r',encoding='utf8') as f:
	data = f.read()
with open(r'a.txt','w',encoding='utf8') as f1:
	new_data = data.replace('tony','jason')
	f1.write(new_data)
# 方式2 新建
import os
with open('a.txt', mode='rt', encoding='utf-8') as read_f, \
open('a.txt.swap', mode='wt', encoding='utf-8') as write_f:
	for line in read_f:
		write_f.write(line.replace('SB', 'kevin'))
os.remove('a.txt')  # 删除原文件
os.rename('a.txt.swap', 'a.txt')  # 重命名文件

image
image

image
image
image
image

3.函数前戏

l = [11, 22, 33, 44, 55, 66, 77, 88]
print(len(l))  # 假设len无法使用
def my_len():
	n = 0
	for i in l:
		n += 1
	print(n)
print(my_len())
"""
1.我们现在所写的代码无法做到精简 需要用就必须重复写
	模仿len的内部源码
2.我们现在所写的代码兼容性极差(无法解决)
3.我们现在所写的代码没有返回值(无法解决 使用之后的返回结果)
	函数简介
		函数就类似于是工具 提前定义好之后可以反复使用
"""

image

4.函数语法结构

函数语法结构
"""
def 函数名(参数1,参数2):
'''函数注释'''
	函数体代码
	return 返回值

1.def(必须的)
	是定义函数的关键字
2.函数名(必须的)
	是函数的名字 相当于变量名
	函数名的命名规范与风格遵循变量名的
3.参数1,参数2(可选的)
	参数可以没有也可以有多个 
	表示在使用函数之前需要满足的一些条件
4.函数注释(可选的)
	类似于产品说明书
	主要用于介绍函数功能 参数使用 及其他情况
5.函数体代码(必须的)
	函数核心的代码逻辑(重要)
6.return返回值(可选的)
	使用函数之后反馈给使用者的结果 可以有也可以没有
"""

5.函数的定义与调用

"""
# 最重要
1.函数必须先定义后调用(一定不能乱)
2.函数在定义阶段只检测语法不执行代码
3.函数在调用阶段才会执行函数体代码
	# 如何调用函数
			函数名加括号  如果函数在定义阶段有参数则在调用阶段也需要给参数
"""

# 函数在定义与调用阶段底层原理
1.在内存空间中申请一块空间存储函数体代码
2.将函数体代码所在的空间地址绑定给函数名
3.函数名加括号则会执行函数体代码

6.函数的分类

1.内置函数
	python解释器自带的  提前定义好了 直接使用即可
2.自定义函数
	程序员自己写的函数
		无参函数
		有参函数
		空函数
		
# 无参函数
	在函数定义阶段括号内没有写参数(变量名)
	def func()
		print('很牛逼')
		
# 有参函数
	在函数定义阶段括号内写了参数(变量名)
	def func(a,b)
		print('更牛逼')
	func(1,2) # 调用也要给予条件
	
# 空函数
	函数体代码为空(pass  ...  占位代替)
"""
虽然空函数本身没有含义  但是空函数可以提前规定好编写代码的思路
"""
def run()
	pass
def fight()
	pass
def talk()
	pass
posted @ 2021-11-12 18:59  Deity_JGX  阅读(61)  评论(0)    收藏  举报