文件

什么是文件:
	文件就是操作系统暴露给用户直接操作硬盘的快捷方式
文件的打开方式:
	第一种:open(文件路径,打开文件的模式,编码默认为utf-8)
    第二种:上下文管理方式,
    with open(文件路径,打开文件的模式,编码默认为utf-8) as f:
文件的读写模式:
	只能操作文本文件
	r只读 w只写,覆盖写 a在尾部追加写,最小操作单位是字符
    rt wt at 
    可以操作所有类型文件:最小单位是字节
    rb wb ab 
文件的内置方法:
    读:
    	f.read()  # 一次性读取所有
        f.readline() #一次读取一行数据
        f.readlines()  # 一次读取所有行,按每行一个元素存放到列表
        f.readable()  # 检测是否可读
    写:
    	f.write()  # 写入数据
        f.writelines(列表)  # 一次性写入列表所有字符型数据
        f.writeable()  # 检测是否可写
文件内光标:
	 seek(偏移量,模式)  #
    0  文本和字节模式都可以使用以开头偏移
    1  字节模式当前位置
    2  字节模式文件末尾
    查看光标当前位置
    	tell()  

计算机硬盘修改原理

计算机在向硬盘内存储数据时,就像是在硬盘里刻字,修改的时候不能才开刻字,一种是覆盖写,一种是,在另外一个地方写,删除的时候其实是改变了数据的状态,把有态转变为无态

函数

可以在不同地方重复使用相同的代码
def 函数名(参数):
    #注释
    函数体
    return 返回值

调用
	函数名加括号即为调用
函数名,跟变量名的命名规范一样,

参数:
	没有实际的意义,在函数定义时,写在括号内
    位置参数
    '''
    遵循越简单越靠前,越长的越复杂的越靠后
    '''
    def num(a,b,c):
        print(a,b,c)
    num(1,2,3)  # 产生数量需要与参数数据一致,不能多也不能少
    
    关键字参数
    def num(a,name,age)
    	print(name,age)
    num(1,name='li',age=12)
    
    
    默认参数
    定义函数,给个默认数据值,用户不穿参,使用默认数值,传参使用传参的数值
    
    可变长形参
    可以接收,多余的参数,一个*接收后组织成一个元组,两个**接收多余的关键字传参组织成一个字典
    可变长实参
    *循环可迭代对象,一次性把数据值传递给形参
    **把字典打散,按关键传递给形参
    命名关键字形参
    
    def n(a,*args,gender='male',**kwargs):
        pass
    n(1,23,3,4,ab='123'gender='male',nnn='12')
    

注释,帮助程序员更好的理解这个函数的功能和作用
函数体,函数具体功能
返回值 不写return 默认返回None
写return 不写返回值 默认返回None
写return 写什么返回值就返回什么返回值,返回多个,会自动组织成元组然后返回

命名空间
内置命名空间
len
全局命名空间
name = '123'
局部命名空间
def pr():
    name = '123'
    
生命周期:
	内置命名空间,解释器运行时候创建,结束立即销毁
    全局命名空间,py文件级,开始执行,创建执行完毕,销毁
    局部命名空间,函数体内,函数开始执行创建,执行完毕,销毁

闭包

函数传参的两种方式一种是直接传参
def index1(n1):
    print(n1)
    
一种是闭包
def index2(n1)
	def inner():
        print(n1)

global,nonlocal

global 局部修改全局
nonlocal 局部就行父级局部变量

装饰器

在不改变源码,和调用方式的情况下增加功能
普通装饰器:

from functools import wraps
def outer(func)
	@wraps(func)  # 修复装饰器
    def inner(*args,**kwargs):
        
        res = func(*args,**kwargs)
        
        return res
    return inner

多层装饰器
@outer1
@outer2  #离被装饰越进,执行越靠后,越远越先执行
def index():
    print('index')

有参装饰器
from functools import warps
def outer_p(moudle):
    def outer(func):
        @warps(func)
        def inner(*args,**kwargs):
            res = func(*args,**kwargs)
            return res
        return inner
    return outer

@outer_p('a')
def index(n):
    print(n)
index(1)

递归

函数自己调用自己,每一次比上一简单
注意事项,不要有,死循环递归,和相互调用死循递归,在递归是死循的情况下,递归1000层作业,解释器为了系统安全,会强制报错。防止系统资源被耗尽导致,计算机死机。

算法

算法就是解决一些问题的方法,并不是所有算法都是合格的
二分法,查找有序数据集的,指定数据

num_list = [1, 2, 3, 5, 8, 10, 100, 1000, 6000]
num = 6000

def get_num(li, num):
    if len(li) == 0:
        print('没找到')
        return
    mindle = len(li) // 2
    print(li)
    if li[mindle] > num:
        get_num(li[:mindle], num)
    elif li[mindle] < num:
        get_num(li[mindle + 1:], num)
    else:
        print(f'找到了{num}')
get_num(num_list, num)
range()
enumerage()
bytes()
open()
pow()
round()

三元表达式

可以把一些简单,python 代码写道一行如if 分支
数据值1 if 条件 else 数据值2

各种生成器:
    列表
    res = [i for i in rang(10)]
    print(res) # [0,1,2,3,4,5,6,7,8,9]
    集合 生成都类似,但是也遵循各个数据类型存储使用规则
    字典
    res = {k,v for k,v in enumerage(可迭代对象,默认为0每次循环加一)}
	元组为生成器

匿名函数

匿名函数,没有名字的函数,通常不单独使用
lambda 参数:返回值

内置函数

map()
zip()
from functools import reduce
reduce()
max\min

len(),id(),type(),str(),int(),float(),bool(),list(),dict(),tuple(),set()
bin() oct() int() hex()
sorted()

sum()
all()  所有数据为True 才为true 
any()  有一个数据为True 即为True

abs()  绝对值

global()  查看全局变量名字典
callable()  是否可以调用
isinstance() 查看第一参数是否是第二个参数可迭代的子类
chr()  ord()  根据ASCII码表,chr数字转字符,ord字符转数字

exec()
eval()
divmod()
hash()



可迭代对象,迭代器对象

内置有双下iter函数
	
    可迭代对象有
    	str tuple list dict set 文件对象
    不可迭代对象
    	int float bool 函数

迭代器的区分,就是内置双下iter 双下next   
迭代器就是有可迭代对象调用双下iter方法转变成的,已经是迭代器对象在调用iter还是他本身,不会有任何变化
使用next方法取数据、
如果取完还执行next方法则会报错


for 循环的原理

for 变量名 in 迭代器对象 内部会执行一次迭代器对象.__iter__()方法,取值使用的是双下next,for循环在取值时会自动捕捉并处理异常

    

异常

异常就是在程序运行中出现的错误,行业内叫bug
不允许出现的错误
	语法错误是不允许出现的,出现了就要立即修改,否则就立马提桶跑路
    
允许出现的异常
	逻辑错误,这种错误是一眼看不出来的,可能会在运行的时候才会出现,如果出现需要修改。
    
异常结构
	错误位置
    错误类型
    错误详情

原文地址:http://www.cnblogs.com/clever-cat/p/16796922.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性