首页 > 其他分享 >10月的第一次周报

10月的第一次周报

时间:2022-10-16 19:56:01浏览次数:74  
标签:10 return 函数 迭代 第一次 num print def 周报

目录

文件

什么是文件:
	文件就是操作系统暴露给用户直接操作硬盘的快捷方式
文件的打开方式:
	第一种: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
不允许出现的错误
	语法错误是不允许出现的,出现了就要立即修改,否则就立马提桶跑路
    
允许出现的异常
	逻辑错误,这种错误是一眼看不出来的,可能会在运行的时候才会出现,如果出现需要修改。
    
异常结构
	错误位置
    错误类型
    错误详情

标签:10,return,函数,迭代,第一次,num,print,def,周报
From: https://www.cnblogs.com/clever-cat/p/16796922.html

相关文章

  • 设置28401事件后启动数据库时报错ORA-49100
    问题描述:设置28401事件后启动数据库时报错ORA-49100,如下所示:数据库:oracle11.2.0.464位系统:centos7.964位20:36:27SQL>altersystemsetevent='28401tracenameconte......
  • 2022-10-16 阿里云图标 全选 加入购物车代码
    varspan=document.querySelectorAll('.icon-cover');for(vari=0,len=span.length;i<len;i++){console.log(span[i].querySelector('span').click()......
  • 10.MongoDB系列之副本集组成
    1.同步复制是指多台服务器保持相同的数据副本。MongoDB通过保存操作日志(oplog)实现复制功能。oplog存在于主节点local数据库中的一个固定集合,包含了主节点执行的每一次......
  • #yyds干货盘点# 面试必刷TOP101:验证IP地址
    1.简述:描述编写一个函数来验证输入的字符串是否是有效的IPv4或IPv6地址IPv4地址由十进制数和点来表示,每个地址包含4个十进制数,其范围为0-255,用(".")分割。比如,172.......
  • #yyds干货盘点# 面试必刷TOP101:大数加法
    1.简述:描述以字符串的形式读入两个数字,编写一个函数计算它们的和,以字符串形式返回。数据范围:,字符串仅由'0'~‘9’构成要求:时间复杂度 示例1输入:"1","99"返回值:"100"说明:1+9......
  • 20221016笔记
    1.数据类型char//字符数据类型short//短整型int//整形long//长整型longlong//更长的整形float//单精度浮点数double//双精度浮点数#include<stdio.h>intmain(){pr......
  • #yyds干货盘点# LeetCode 热题 HOT 100:二叉树的中序遍历
    题目:给定一个二叉树的根节点root,返回它的中序 遍历。 示例1:输入:root=[1,null,2,3]输出:[1,3,2]示例2:输入:root=[]输出:[]示例3:输入:root=[1]输出:[1]代码实现:cla......
  • #yyds干货盘点# LeetCode 热题 HOT 100:不同的二叉搜索树
    题目:给你一个整数n,求恰由n个节点组成且节点值从1到n互不相同的二叉搜索树有多少种?返回满足题意的二叉搜索树的种数。 示例1:输入:n=3输出:5示例2:输入:n=1输出:1......
  • 10.16
    本周内容总结1.文件操作2.函数3.函数参数4.装饰器5.算法6.生成式7.内置函数8.可迭代对象9.迭代器对象1.文件操作1.文件的概念就是操作系统暴露给用户操作硬盘......
  • 【10】Spring源码-分析篇-AOP源码分析
    Spring源码-AOP分析一、手写AOP回顾  本文我们开始讲解Spring中的AOP原理和源码,我们前面手写了AOP的实现,了解和自己实现AOP应该要具备的内容,我们先回顾下,这对我们理解Spri......