Python 学习笔记 之 01 - 基础总结
数据类型
整数
十六进制和八进制使用0开头,0x12f, 010
浮点数
可以用科学记数法,如1.23x10^9 可以写成 12.3e8 ,0.000012可以写成 1.2e-5
空值
用None表示 , 注意大小写。
整数的运算永远是精确的,浮点数运算可能会有四舍五入的误差。
除法
10/3 = 3.33333
9/3 = 3.0
地板除法
10//3 = 3
负数的地板除法
负数的取整会取远离0的一方, 如 -10//3 = -4 , 因为-3.33333 取整后是 -4 。
取余
10%3 = 1
取余的算法为 x%y == x-((x//y) * y)
字符串
'' 或者 ""
字符串转义
使用 \ , 或者 r'' 、 r"" 将指定字符串默认不转义
字符串换行
使用'''
字符编码
- 获取字符的整数表示
ord()
- 把整数编码转换为对应字符
chr()
- 用十六进制的方式表示字符的整数编码
'\十六进制编码'
- 将字符从str转为bytes,这样每个字符仅占用一个字节,便于传输。
b'ABC'
- 将str编码为指定字符集的bytes
'ABC'.encode('ascii')
- 将bytes转为str
b'ABC'.decode('ascii')
- 获取长度、获取str包含多少字符、获取bytes包含多少字节
len()
len('ABC')
len(b'ABC')
字符串格式化
占位符
- 整数 %d
- 浮点数 %f
- 字符串 %s
- 十六进制 %x
有几个占位符, 后面就跟几个变量、值
format()函数
{0},{1},{2}…… .format('a','b','c'……)
list
形式为['a',2,True,None……]
- 获取元素个数
len(list_name)
len(['a','b'……])
- 通过索引获取元素
list_name[0] #第一个元素索引位为0
list_name[-1] #获取最后一个元素
- 向list中追加元素
- 追加到list末尾
list_name.append()
- 追加到指定位置 , 如超出元素个数,则插入到最末尾
list_name.insert(x,'')
- 向list中删除元素
list_name.pop()
- 删除指定索引位置的元素
list_name.pop(x)
- 替换某个元素,可以直接赋值给对应索引位
list_name[2]='new_values'
- list可以作为元素被别的list包含
取嵌套list的元素时,使用多层索引,如:
lo = [1,2,3,['a','b','c'],4,5]
如需取 a 值, 则使用 lo[3][0]
- 如果一个list中没有元素,则长度为0
tuple
形式为('a',2,True,None……) ,和list几乎一样
- tuple初始化后不可以修改,所以不支持append、insert、pop
- tuple可以定义为空
- 如果tuple中只包含一个元素, 在定义的时候要在元素后加逗号,如:
t0 = ('a',) ,以避免与数学运算的小括号混淆。
- 虽然tuple不可以修改,但是当tuple包含list时,list的内容是可以修改的。因此,要保证tuple中一个内容都不变,就要保证每一个元素都不可改变。
条件判断
形式为
if x:
active1
elif y:
active2
else :
active3
判断行为用冒号,后续跟随的动作要缩进以代表判断后要执行的部分。
循环
for...in...循环
形式为
for x in y:
active
while 循环
形式为
while 条件:
active
批量生成整数序列
range(n) #从0开始生成到n-1的序列,如果n小于0则为空
退出循环
break
跳过本次循环
continue
不要滥用break和continue ,尽可能少用,尽可能用循环逻辑去代替break和continue
dict
- key-value存储,一个key只能对应一个value,后出现的key值会覆盖之前相同key的值.
- key要用不可变对象,所以key不能用list。
- dict是使用内存空间换取运行时间的方法,占用内存多于list,但是查找和插入速度极快。
形式为 {'key1':value1, key2:value2 ,…… }
调用时为 dict_name[keyx]
key的存放顺序与录入顺序无关。
- 调用时如果key不存在会报错,可以通过in来判断key是否存在
'abc' in dict_name
- 使用get()获取key对应的value,如果不存在,返回None
dict_name.get(keyx)
- 如果不存在,也可以返回定义值
dict_name.get(keyx , VALUE)
从dict中删除
pop(keyx)
如果不指定key ,会报错。
set
- 和dict类似,也是一组key的集合,但是不包含value。
- 由于key不能重复,所以set中没有重复值
- set内的list中的元素顺序并不表示set中的顺序,因此,set中的元素也是无序的。
创建set需要一个list。
s0 = set( [1,2,3,4,5] )
or
list1 = [1,2,3,4,5]
s1 = set( list1 )
- 添加元素到set中
s0.add()
添加到set中的元素不支持可变对象,因此list不能作为元素添加到set中
- 从set中删除元素
s.remove()
一次只能remove一个元素。
不可变对象 使用replace()函数对不可变对象值进行替换后,实际上原对象的值并没有变化,用print()函数对原对象进行输出既可以看出。
所以,对于不可变对象来说,调用对象的任意方法都不会改变对该对象自身的内容,仅仅会创建新的对象并返回,这样就保证了不可变对象本身是永远不可变的。
Python 学习笔记 之 01 - 基础总结的更多相关文章
- Python学习笔记 :01概述
Python基础 首先推荐学习Python基础的教程和书籍 视频教程推荐南京大学张莉老师在cousera上的教程用Python玩转数据 入门教程<Python基础教程> 数据挖掘教程< ...
- Python学习笔记一(基础信息)
目录 输入输出 数据类型和变量 整数 浮点数 字符串 布尔值 空值 变量 常量 小结 欢迎关注我的博客我在马路边 说明:此笔记不是从零开始,在学习的过程中感觉需要记录一些比较重要和需要重复浏览的信息, ...
- Python学习笔记(01)
参考书:<Python编程:从入门到实践> 还有其他 Chapter01 print print(a,b,sep="|") sep规定输出间的间隔 print(“Pyt ...
- 吴裕雄--python学习笔记:爬虫基础
一.什么是爬虫 爬虫:一段自动抓取互联网信息的程序,从互联网上抓取对于我们有价值的信息. 二.Python爬虫架构 Python 爬虫架构主要由五个部分组成,分别是调度器.URL管理器.网页下载器.网 ...
- Python学习笔记1(基础语法)
1.Python的文件类型: 源代码:扩展名以py结尾.python写的程序不需要编译成二进制代码,可以直接运行.pyw是Windows下开发图形界面的源文件. 字节代码:扩展名以pyc结尾,是编译过 ...
- Python学习笔记 chapter 2基础
程序输入 >>> print('%s is number %d'%('Python', 1))Python is number 1 输出重定向有问题(待定) 文本输入>> ...
- 【Python学习笔记一】基础环境安装:idea+python
IDEA 安装 1.下载IDEA 官网下载地址: https://www.jetbrains.com/idea/ 2.安装的时候配置基本选择默认配置就行 参考链接:https://blog.csd ...
- Python学习笔记1:基础
1.编码 默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串. 你也可以为源文件指定不同的字符编码.在 #! 行(首行)后插入至少一行特殊的注释行来定义 ...
- python学习笔记——多进程一 基础概念
1 进程 进程:程序的一次(从开始到结束)执行过程,属于一个动态过程.是系统进行资源分配和调度的基本单位. 程序:指的是一个文件,磁盘中可执行的代码.属于一个静态文件 注:进程运行时需要把程序加载如内 ...
随机推荐
- 从 Webpack 到 Snowpack, 编译速度提升十倍以上——TRPG Engine迁移小记
动机 TRPG Engine经过长久以来的迭代,项目已经显得非常臃肿了.数分钟的全量编译, 每次按下保存都会触发一次10s到1m不等的增量编译让我苦不堪言, 庞大的依赖使其每一次编译都会涉及很多文件和 ...
- 讲武德,你们要的高性能日志工具 Log4j2,来了
Log4j 介绍过了,SLF4J 介绍过了,Logback 也介绍过了,你以为日志系列的文章就到此终结了? 不不不,我告诉你,还有一个 Log4j 2,顾名思义,它就是 Log4j 的升级版,就好像手 ...
- Hadoop大数据平台搭建之前期配置(1)
环境:CentOS 7.4 (1708 DVD) 工具:VMware.MobaXterm 一. 网络配置 1. 在VMware中安装虚拟机,此步骤不作赘述. 2. 镜像文件保留在固定目录下,网络适配 ...
- 【惊喜】Github爆火的java面试神技+java核心面试技术已开发下载,大厂内都传疯了!
前言 今年,由于疫情的影响,很多互联网企业都在缩减招聘成本.作为程序员,原本这两年就面临竞争激烈.年龄危机的问题,而现在的求职局面又完全是企业在挑人的状态. 所以最好能在空闲的时候看看大厂相匹配的技术 ...
- jQuery 第四章 实例方法 DOM操作之data方法
jquery 里面 的 data 方法比较重要, 所以成一个模块写: 首先, 得知道 data() 干嘛用的, 看淘宝上 有自定义的属性, 为data - 什么什么, 这是为了dom 跟数据有 ...
- 【PYTEST】第一章常用命令
pytest入门 安装pytest 运行pytest pytest常用命令 1. 安装pytest pip install pytest 2. 运行pytest 2.1 pytest默认搜索当前目录下 ...
- 慢SQL优化:where id in (select max(id)...) 改为join后性能提升400倍
背景 有两张表,都是主键递增,类似于主表和明细表: statistics_apply:统计申请表,主键applyId,7万多条记录 statistics_apply_progress:统计申请进度表( ...
- 【mq读书笔记】mq消息存储
comitlog文件 ConsumerQueue文件 IndexFile文件 RocketMQ将所有主题的消息存储在同一个文件中,确保消息发送时顺序写文件. 为了提高消息消费的效率RocketMQ引入 ...
- PADS CAM光绘输出文件设置
PADS CAM光绘输出文件设置 在使用PADS完成电路板的设计后,通常还需要在CAM350中经过一些处理生成Gerber文件,交给制板厂商进行电路板的生产,这就要求在PADS中设置生成CAM文件,然 ...
- golang 自学系列(四)——debug for vscode
golang 自学系列(四)--(调试)VSCode For Debug 这里如何装 vscode 我就不说了 这里如何在 vscode 正常写代码我也不说了 在能正常用 vscode 写 go 语言 ...