python基础个人复习大纲(1)

python注释

  • 单行注释 #
  • 多行注释 ‘’’ ‘’’ 或 “”" “”"

python变量

  • python是强类型语言,变量命名会自行判断数据类型,是个动态类型的值
  • 标识符声明:包含字母数字下划线不能以数字开头,不能为关键字
  • 数据类型: number String bool list set tuple
  • 布尔类型的值首字母大写 True False,可以参与整数类型的计算
  • float转int不会损失精度

语言特性

  • Python语言采用代码缩进的原理,默认缩进四个空格,可以利用tab或者空格键补全
  • Python语言的代码执行体,不在{}里面,而是在:之后写代码的执行体
  • Python语言里面执行代码的时候,不会按照由上到下的原则

新特性

  • Python3.2以后不支持单一参数,因为单一参数不可以和变量属性进行赋值相匹配
  • Python支持常量的重新定义操作

字符串(str)

  • 命名规则(大驼峰命名法也叫帕斯卡命名法,小驼峰命名法)
  • 类型转换int() float() str() bool()
  • 下标与切片,如s[1:10:2] ,表示下标0-9,步长为2取字符。步长为-1表示倒序,切片顺序只能从前到后[-2:-5]返回为空
  • 字符串函数:split() 不建议使用,会占用内存空间;title()将空格进行压缩,性能一般;capitalize()用来调整不规范的代码
  • count()第三个参数只能为len函数
  • split() 第二个参数 从0开始分割成1个字符串(分割0次)
  • partition()以第一个遍历到的字符串为准

运算符

  • / 取余,int/int=float
  • % 取模
  • // 整除
  • ** 幂次方
  • += -=用于循环结构居多,单独使用不建议

其他

  • 空格和‘’可以占用内存,但是不参与计算;null 是一个数据类型的默认值,它可以释放内存,从而不消耗内存空间,建议使用;0 指的是具体的资源内存,可以参与计算
  • {}存放变量名称和变量值,存放list 元祖 set集合,表示一个方法体,和Java的new构造器一个功能
  • None 不会占用内存但是会让程序进行大量的执行,产生代码的可执行体,不要经常使用
  • 键盘输入 input() 可以用于算法(贝叶斯,泰勒)

列表

[]就是一个内存空间,所以list可以再[]里面存放数据
列表里可以存放任意类型的东西
存放数据的核心 CRUD

列表的作用

  • 存放数据,list存放数据是安全的,不能存放大数据的东西,例如 音频 视频 图片等
  • list可以遍历数据库的结果集 ★
  • list的底层原理是一个bean容器 ★

下标

  • 下标是可以被改变的,更改下标对list的内存空间没有任何影响;主键一般不删除,删除会影响数据的性能
  • 负数可以取list,也会越界

切片

  • 如果切片的次数大于list里面的数据,程序不会报错,因为有无限大的内存
  • [1:1]会将数据进行破坏
  • 省略结束位置,一直截取到最后;省略起始位置,会从第一个元素开始
  • 只包含开始索引位置,不包含结束索引位置
  • 起始位置和结束位置全部省略,则相当于创建了一个列表的副本,尽量不要出现。
  • :表示的是一个内存,如果没有起始位置和结束位置的定义,这个内存默认无限大,会导致大量的内存空间闲置,最后会导致程序、数据的空闲例程
  • 步长不能为0,可以为负数,负数不建议使用,读写操作很慢,因为不确定数据的起始值和结束值(没有最大值和最小值)数据不好维护,会产生数据的垃圾碎片,导致数据的脏读

拼接

  • 左边为主列表,右边为子列表
  • 列表拼接之后就是一个完整的列表,将值默认存放到对应内存里面
  • 列表遵守数据的先进后出
  • *可以进行数据复制操作,重新分配内存,不建议使用 (数据的批处理)

函数

  • in, not in 数据筛选操作(安全)
  • max(),min()字符串不能参与运算,不能随意被更改
  • count表示统计,并非计算,不推荐使用
  • 通过index索引修改的数据只是在控制台给客户打印输出,不能将原始数据库数据进行修改;通过index修改元素并不影响原始数据的性能和数据完整性,也不会造成数据的脏读脏写;企业开发获取参数的值,获取数据库表字段建议使用index,操作安全快捷;常修改的数据不适合索引,后果 内存溢出、数据缺失(数据完整性)、给内存造成负载均衡
  • del 关键字删除 只会删除元素内存里面的内容,并不会将数据内存的地址彻底删除
  • insert() 顶部插入
  • extend() 是动态参数的形式去获取列表元素(直接操作数据),拼接列表是通过 + 表示的是静态操作(不操作数据)
  • clear() 清空内容,地址不变
  • reverse() 基于客户端,并不会修改数据

其他

  • String str = new String(“abc”) 产生了2个对象,一个在pool中(相同的字符串不会重复创建),一个放在堆中
  • 线程安全:多个线程在操作过程当中,一个线程在执行的时候,另一个线程不能执行,采用了加锁机制,来保证数据的安全性,直到线程1结束释放CPU资源,线程2才可以执行;线程不安全:指的是多个线程在执行的过程中,抢夺CPU资源,最后导致服务器崩溃,数据泄露,线程发生死锁
  • where 表示一个条件判断,降低数据库的性能;having 数据筛选操作
  • tomcat+ngix集群+Hadoop(分析大数据)+solr(全文检索)+Redis(缓存数据库)非关系型数据库
  • 遍历数据:for循环(for(参数1:参数2))、迭代器、foreach、…list
  • 序列化作用:对数据的读写操作很快,IO直接读取二进制字节码

元组(tuple)

  • 不可改变的列表。数据不改变时,使用元组,数据改变使用列表
  • 元组使用小括号,列表方括号
  • 元组不可重新赋值
  • 元组赋值时可以省略括号,不建议使用,效率低;()表示是一个函数,表示一个可以带参数或不带参数的方法,效率高
  • 元组的截取是通过list列表的切片机制操作
  • example = (12) 值为12,内存执行的时候会按照内存12操作数据

删除

  • del 元组名 和del函数功能一样
  • delete只能操作表数据,但是不能操作表结构,也不能改变表结构;执行drop命令会将表和表数据彻底删除,会破坏表结构,造成内存溢出,数据很难维护

元组函数

  • max() 取最大值,可以带多个参数将元素原样输出
  • tuple(list) 强制类型转换
  • 元组和列表的区别:列表是有序的可以改变值,元组是固定位置不可以改变值;元组的优先级大于列表;列表没有元组安全,也不易维护;元组的查询速度更快;对象的属性方法属于元组

字典(dict)

  • 字典可变容器类型,可以储存任意类型对象
  • {}表示键值对的写法,速度极快
  • 键不可以重复,值可以重复
  • 字典的键和数据库的ID主键原理一样
  • 键一般用str,因为服务器传输数据用str
  • 不建议通过key获取值,get()建议使用(通过映射关系)
  • fromkeys可以处理海量数据
  • 元组里面嵌套字典/列表,会引发值得不确定性
  • keys底层其实就是实现一个like函数的查询方法,效率很低,不可以满足查询海量数据的操作

其他

  • 括号合法定义([]) {[],[]}
  • 多维元组定义 (),() [],[]
  • 列表是特殊的元组,元组包含列表
  • 调试BUG Ctrl+1
  • 映射的作用:通过映射可以减少开发代码量,映射可以很好的将项目的业务进行关联维护
  • like缺点:like查询数据会产生缓存;like操作数据的时候会将数据切片,数据可能不是很完整

条件

  • 单独的if不建议使用
  • 反复执行条件判断会对服务器造成压力,影响开发软件的性能

循环

  • while容易造成死循环,不建议进行遍历大量结果集,建议使用for
  • while else 中断循环,else终止循环回收有弊端(强制退出),建议使用break(安全退出)
  • continue 建议使用
  • in表示一个空间内存(将列表、元组、集合等数据放到in里面遍历),for循环的核心是in关键字

pass

  • 如果没有想好业务代码需求,可以暂时不写任何代码,但是要用pass将这个代码区域占用

遍历

  • 遍历结果集 list();元组;集合set,建议使用list
  • list底层是链表,对数据解析安全,读取二进制字节码速度很快;list底层具有一种计数器/游标/指针,数据在内存一行一行读取,不发生数据的阻塞
  • for和while也可以遍历函数自身的结果

其他(Java)

  • 先概念模型(cdm),后物理模型(pdm),快捷键Ctrl + G
  • 表设计:用户信息功能模块表(用户表,角色表,权限表),项目的功能业务表
  • 微服务(SpringBoot,Springcloud)

函数(def)

  • 函数能够提高应用的模块性和代码的重复利用率,容易维护,降低软件之间的耦合度
  • 函数为变量赋值的效率高
  • 函数参数:必备参数(位置实参),关键字参数,默认参数(不建议使用,解释器会将实参和形参混淆),不定长参数 参数类型一般是字符串
  • *表示内存,类型是元组
  • **类型是字典,在函数调用出直接赋值,效率高
  • Java语言变量重新赋值会是用来两个不同的内存空间,Python重新赋值时,内存会丢弃,重新生成
  • 可变类型:字典 列表

return

  • return表示的是返回客户端浏览器的一行数据;return返回的永远是一个程序所控制的一个数据结果集;return以后的代码不再执行
  • print表示的是只给客户端控制台打印输出结果,并非数据
  • id可以打印地址,变量的值相同时,变量地址相同,节省内存空间,所以可以返回海量数据
  • return一次性可以返回多个值,保存到元组里,不建议使用

迭代器

  • yield只能返回一次,可以返回多个值,将函数或者变量作为一个生成器generator,返回一个迭代器对象
  • 调用next方法将生成器里面的值按照游标的原理读取,iter方法没有前者效率高,next方法更加接近迭代器的迭代原理
    yield函数会暂停并保存当前所有的运行信息,返回yield的值。并在下一次从当期前位置继续运行。
  • 通过iter方法将数据从内存里面获取到,之后交给next方法去执行遍历结果集;先有iter再有next,iter方法和内存数据有关系,next方法和内存没有关系,操作是安全的
  • send方法表示将当前的yield的值返回,不再进行执行next方法,操作不安全

递归

  • range包括起始值,不包括结尾值
  • 无穷递归函数:会将数据溢出,泄露核心数据
  • 递归的核心思想 基线——将数据进行切片

高阶函数

  • 接受一个活多个函数作为参数;将函数作为返回值返回
  • 高阶函数在实际工作里大量使用,作为函数返回;高阶函数可以减少代码的重用性,避免大量的循环判断语句;让业务代码块之间清晰

内置函数

  • reverse FALSE要进行逻辑判断,true直接返回
  • round 第一个参数是浮点类型,金融项目和货币计算结合使用

其他

  • 自增mysql auto increment,oracle 序列,所以oracle更适合做大数据
  • sorted本质是克隆,不会影响内存数据
  • 常见的设计模式,装饰 会话 单例 适配器 工厂 隐藏
  • 装饰器:创建外部函数,创建内部函数,调用被扩展的函数,返回内部结果,返回新函数
  • 面向过程:代码重用度低,不易维护;面向对象:重用度高,易维护,编写麻烦,不符合思维逻辑
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值