首页 > 其他分享 >本周总结

本周总结

时间:2022-10-16 21:24:23浏览次数:46  
标签:总结 文件 函数 迭代 res 本周 名称 __

目录

文件操作

文件的概念

文件就是操作系统暴露给用户操作硬盘的快捷方式
with open(文件路径,读写模式,encodeing='utf8') as f:
    with子代码块
with支持一次性打开多个文件

文件的读写模式

r 只读模式:只能读不能写
w 只写模式:只能写不能看
a 追加模式:未见末尾添加数据

文件的诸多方法

read # 一次性读取文件内容
readline # 一次只读一行内容
readlines # 一次读取文件内容 会按照函数组织成列表的一个个数据值
readable # 判断文件是否具备读取数据的能力
write # 写入数据
writeable # 判断文件是否具备写数据的能力
writelines # 结束一个列表 一次性将列表中所有的数据值写入
flush # 将内存中文件数据立刻刷到硬盘 等价于ctrl + s

文件内的光标移动

seek(位移量,模式)

文件光标移动案例

import time
with open(文件路径,'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='')
    

计算机硬盘修改数据的原理

计算机存储数据类似于刻字,一旦修改就需要重新刻,计算机删除数据并不是直接删除,而是改变状态,直到有新的数据写入才会覆盖掉原来的数据

文件操作模式

b模式:可以修改任意文件需要自己写b rb wb ab,不需要指定encodeing参数
t模式:pycharm默认模式,不需要手动写入,我们写的r w a 其实都是rt wt at,只能修改文本模式,需要指定encodeing参数,否则计算机使用默认编码

文件内容修改(了解)

# 修改文件内容的方式之一:覆盖写
打开一个文件,只读,再打开一个文件,只写,把读到的内容修改
# 修改文件内容的方式之二:换地写
'''先在另外一个地方写入内容 把源文件删除 将新文件命名成源文件'''

函数基础1

函数前置

函数相当于工具
不用函数
	修理工需要修理器件要用锤子 原地打造 每次用完就扔掉 下次用继续原地打造
用函数
	修理工提前准备好工具 什么时候想用就直接拿出来使用

函数的语法结构

def 函数名 (参数):
    函数体代码
    return返回值

函数的定义与调用

定义:def 函数名(形参):
    	函数体代码
        return 
函数在定义阶段只检测语法 不执行代码
函数在调用阶段才会执行函数体代码
函数必须先定义再调用
调用:函数名(实参)

函数的分类

空函数 # 函数体代码为空 主要用于项目前期的功能框架搭建
无参函数 # 定义函数的时候括号内没有参数
有参函数 # 定义函数时括号内写参数 调用时传参

函数的返回值

调用函数之后返回给调用者的结果
res=func()接收返回值 
return后边写什么返回什么
没有写默认返回none
函数体代码return后有多个数据 则自动组织成元组返回
函数体代码遇到return会立即结束

函数的参数

形参:在定义阶段括号内写的参数,类似于变量名
实参:在调用阶段括号内写的参数,类似于数据值,在调用阶段与形参临时绑定 函数结束运行立刻断开

函数基础2

函数参数之位置参数

def index(a,b,c,d):
    print(a,b,c,d)
    
index(1,2,3,4)

位置传参必须按顺序传参,不能少一个也不能多一个,多一个少一个都会报错
    

默认函数

默认参数是定义函数的时候传入的固定参数,默认函数也称为关键字传参
def index(a=1,name='jason',age=18):
    print(f'编号:{a},姓名{name},年龄{age}')
    
index(a=2,name='kevin',age=19)
默认参数可以传可以不传

可变长形参

def index(*args):
    print(args)
# 接收多余的位置参数,使其变成元组形式赋值给*号后边的变量名


index(1,2,3,4,5)

def index(**keargs):
    print(keargs)
# 接收多余的关键字参数,使其变成字典键值对的形式赋值给**后边的变量名


index(a=1,b=2,c=3)

可变长实参

*在实参中
	类似于for循环 将所有循环遍历出来的数据按照位置参数一次传给函数
**在实参中
	字典打散成关键字参数的形式传递给函数

命名关键字参数(了解)

形参必须按照关键字参数传参>>>:命名关键字参数

名称空间

# 内置名称空间 全局名称空间 局部名称空间
内置名称空间
	解释器运行自动产生 里面包含了很多名字
全局名称空间
	py文件运行产生 里面存放文件级别的名字
局部名称空间
	函数体代码运行\类体代码运行 产生的空间

名称空间存活周期及作用范围

1.内置名称空间:作用于解释器级别,pycharm打开则创建,关闭则销毁
2.全局名称空间:作用于py文件级别,py文件创建则创建,关闭py文件则销毁
3.局部名称空间:作用于函数内部,函数创建则创建,函数结束则销毁

名字的查找顺序

局部名称空间>>>全局名称空间>>>内置名称空间
全局名称空间>>>内置名称空间
1.当在局部名称空间找数据值时,会先在局部名称空间找,然后去全局名称空间找,找不到去内置名称空间找
2.当数据值在全局名称空间时,会在全局名称空间找,找不到然后去内置

查找顺序案例

相互独立的局部名称空间不能够互相访问

函数高级

global与nonlocal

global:全局名称空间修改内置名称空间的数据值
nonlocal:内部局部名称空间修改外部局部名称空间

函数名的多种用法

1.可以作为函数的参数
2.可以作为返回值
3.可以作为变量名赋值
4.可以当做容器类型的数据

闭包函数

1.定义在函数内部
2.用到外部函数名称空间中的名字
# 给函数体代码传参的方式1:代码里面缺什么变量名形参里面就补什么变量名
# 给函数体代码传参的方式2:闭包函数

装饰器简介

在不改变装饰对象的内容和调用情况的情况下,给装饰器对象增加新的功能

装饰器模板

def outer(func_name):
    def inner(*args, **kwargs):
        '''被装饰对象执行前可进行的操作'''
        res = func_name(*args, **kwargs)
        return res
    return inner

outer = outer()

装饰器语法糖

def outer(func_name):
    def inner(*args, **kwargs):
        '''被装饰对象执行前可进行的操作'''
        res = func_name(*args, **kwargs)
        return res
    return inner
@outer # outer = outer()
def index():
    print('from index')
    

函数高级总结补充

多层语法糖问题

由下而上,如果上边还有语法糖,则把返回的函数名当做参数传给上边的语法糖调用
如果没有语法糖,则变形index = outer1(wrapper2)

有参装饰器

当装饰器需要传入额外的参数时,用到有参装饰器
def outer_plus(a):
    def outer(func_name):
        def inner(*args, **kwargs):
            '''被装饰对象执行前可进行的操作'''
            res = func_name(*args, **kwargs)
            return res
        return inner
     return outer
    
函数名加括号执行优先级最高
有装饰器的情况
	先看函数名加括号的执行
    在是语法糖的操作

装饰器修复技术

就是让装饰器看起来更逼真,用到一个函数
from functools import wraps
在函数下
	@wraps(参数)

递归函数

直接或间接调用函数本身
要有一个明确的结束条件
每次递归都要比上一次简单
def get_age(num):
    if num = 1:
        return 18
    return index(num - 1) + 2

res = get_age(5)
print(res)

算法,表达式,内置函数

算法简介及二分法

算法就是解决问题的方法,不是所有的算法都很高效也有不及格的算法

三元表达式

res = '1' if 条件1 else '2'
print(res)

各种生成式

字典生成式
res={i:j for i,j in enumarter(s1,start=)}   # enumerate就是一个把字符串转成从零记录每个字符的字典,可以在后面写入开始记录的起始数字
列表生成式
res=[i(此处可进行操作) for i in l1]
集合生成式
res={i for i in 数据值}
元组生成式 # 元组生成式>>>:没有元组生成式 下列的结果是生成器(后面讲)
res = (i(此处可进行操作) for i in s1)
for i in res1:
    print(i)

匿名函数

res = (lambda 形参:返回值)
res = (lambda a,b:a+b)

常见内置函数

map	# 映射
reduce # 传多个值 返回一个值
zip
max,min
bin,oct,hex,int
bytes,print,input
filter # 取所有比传入参数大的值
sorted # 默认升序
abs # 绝对值
all # 所有数据值对应的布尔值为True结果才是True否则返回False
any # 所有数据值对应的布尔值有一个为True结果就是True 否则返回
callable # 判断名字是否可以加括号调用
chr,ord
dir # 返回括号内对象能够调用的名字
divmod # 元组  第一个数据为整除数  第二个是余数
enumerate # 枚举
eval,exec # 能够识别字符串中的python并执行,eval只能识别简单的python代码 具有逻辑性的都不行,exec可以识别具有一定逻辑性的python代码
hash # 哈希加密
id,isinstance
open
pow # 幂指数
range
round # 四舍五入
sun # 求和

重要内置函数,可迭代对象,迭代器对象,for循环内部原理,异常处理

可迭代对象

能使用.之后__iter__都称为可迭代对象
不是可迭代对象
	int float bool 函数对象
是可迭代对象
	str list dict tuple set 文件对象
迭代:更新换代(每次更新都必须依赖上一次的结果)
可迭代在python中可以理解为是否支持for循环

迭代器对象

在使用__iter__之后能用__iter__和__next__
提供了一种不依赖于索引值的方式
取不到值会报错
注意
	可迭代对象调用__iter__会成为迭代器对象 迭代器对象如果还调用__iter__不会有任何变化 还是迭代器对象本身

for循环的本质

1.先对可迭代对象使用__iter__
2.然后再使用__next__并接收返回的值
3.循环完毕报错会自动被for循环捕获并处理

异常捕获|处理

俗称:bug
    代码运行中一旦遇到异常会直接结束整个程序的运行 我们在编写代码的过程中要尽可能避免
有两种bug:
语法错误:不允许出现,不然代码和你至少要能跑一个
逻辑错误:犯了及时修改bug,代码运行之后才会出现
报错结构:
错误位置
错误类型:错误具体内容

标签:总结,文件,函数,迭代,res,本周,名称,__
From: https://www.cnblogs.com/zpf1107/p/16797198.html

相关文章

  • python第三周总结
    每周总结文件操作1.文件概念与打开方式1.文件的概念就是操作系统暴露给用户操作硬盘的快捷方式eg:双击一个文件其实是从硬盘将数据加载到内存ctrl......
  • 双指针算法学习总结以及实现案例
    双指针算法简介:指的是在遍历对象的过程中,不是普通的使用单个指针进行访问,而是使用两个相同方向(快慢指针)或者相反方向(左右指针)的指针进行扫描,从而达到相应的目的。换言之,双......
  • 2022-2023-1 20221327刘祖京 《计算机基础与程序设计》第七周学习总结
    作业信息班级链接 https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP作业要求 https://www.cnblogs.com/rocedu/p/9577842.html#WEEK07教材学习内容总结阅读《......
  • 总结3
    文件操作文件的定义文件时操作系统提供给我们管理硬盘的方法,可以将硬盘上的一块区域划出,其内部的数据就是有效的文件,硬盘上的数据都是以机器语言1010的二进制形式存储的,......
  • 计算机基础与程序设计第七周学习总结
    教材内容学习计算机科学概论课本第八章1,数据处理类型,应用层、逻辑层、实现层2,数据的存储和调用相关:数组和链表3,LIFO(栈类)和FIFO(队列类)4,检索方式5,图(graph)6,子程序与参......
  • 2022-2023-1学期20221417 《计算机基础与程序设计》第7周学习总结
    这个作业属于哪个课程<班级的链接>(如2022-2023-1-计算机基础与程序设计)这个作业要求在哪里<作业要求的链接>(如2022-2023-1计算机基础与程序设计第七周作业)......
  • 2022-2023-1 20221324《计算机基础与程序设计》第七周学习总结
    ##作业信息这个作业属于哪个课程https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP这个作业要求在哪里https://www.cnblogs.com/rocedu/p/9577842.html#WE......
  • 2022-2023-1 20221401 《计算机基础与程序设计》第七周学习总结
    作业信息班级链接:https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP作业要求:https://www.cnblogs.com/rocedu/p/9577842.html#WEEK07作业正文:https://www.cnblogs......
  • 本周总结
    本周总结字典,元组,集合内置相关操作字典#字典必须掌握的操作user_dict={'username':'pig','password':111,'happy':['ren','misuy','rong']......
  • 第四讲 继承与多态 课后总结
    什么是继承?继承是对现实生活中的“分类”概念的一种模拟。狮子拥有动物的一切基本特性,但同时又拥有自己的独特的特性,这就是“继承”关系的重要特性:通常简称为“IS_A”关......