三引号:当遇到一大串文字,如何显示 利用三引号,利于阅读 单引号/双引号均可
数据类型
-
整数:可以为任意大小、包含负数
-
浮点数:就是小数
-
字符串:以单引号
'
、双引号"
、三引号'''
或"""
括起来的文本 -
布尔:只有
True
、False
两种值 -
空值:用
None
表示 -
变量:是可变的
-
常量:不可变
第一行代码:“hello word”
数据类型:
不可变数据和可变数据
不可变数据(number,string, tuple)可变数据(list,dictionary,set)
整数、小数都属于数字(number) • 整数(int)、小数用(float)
java中小数单精度(float),双精度(double)
python中并无单双精度,python中float默认双精度
其他语言整数分为:short、int、long
有序与无序
何为序列,即有顺序的列表
字符串、列表、元组等都是有序序列,而字典和集合因为其不允许有重复的成员所以是无序的序列。
set是一种无序列表,无法通过序列方式取值
dict字典也是一种集合,无序
python除法中的/ 、//(地板除)
//可以表示成地板除,也就是0.5 = 0
1.5 = 1 只取其中整数部分
python中如何表示进制 • 0b表示2进制(0b111) • 0o(八爪鱼)表示8进制 (0o111) • 0x表示16进制(0x1F)
python中的进制转换
bin方法实现其他进制转换为2进制 •
int方法实现其他进制转换为10进制 •
hex方法实现其他进制转换为16进制 •
oct方法实现其他进制转换为8进制
数据类型
bool类型
bool表示真假(0 空 为假 其余都为真)
在python中注意大写
True/False;int(True) == 1;int(False) ==0
bool类型也属于数字(True=1,False=0)
python中字符串
字符串在python中形式str(英文输入法下)
单引号,双引号,三引号
思考为什么要存在单引号,又需要双引号?
因为输出字符串中可能包含单引号或者双引号,这样可以区分。如果含有多个单双引号,则用三引号进行引用
三引号:当遇到一大串文字,如何显示 利用三引号,利于阅读 单引号/双引号均可
index找出某个值在列表中第一个匹配的索引
set集合
集合会将所有元素放在一对大括号 {} 中,相邻元素之间用“,”分隔
同一集合中,只能存储不可变的数据类型,包括整形、浮点型、字符串、元组,无法存储列表、字典、集合这些可变的数据类型,否则 Python 解释器会抛出 TypeError 错误。
是一种无序列表,无法通过序列方式取值
集合符号{}/{1,2,3,4,5,6}
集合里元素唯一
set方法
增
删
dict字典
顾名思义和我们小时候用的新华字典相同
字典中含有key,value。key不允许重复
key类似字典的拼音与偏旁部首,key必须为不可变元素
字典也是一种集合,无序
定义方式{key:value,key1:value1......}
空字典用{}表示
python中特殊字符(\n,\', \t)
无法看到的字符(换行\n,制表符\t)
与python语法冲突(\')
原样输出使用场景
print('E:\nba\npc') • print('E:\\nba\\npc')
思考假如这个文件路径太长,太多\\如何处理
print(r'E:\nba\npc')加入r称为原始字符串
python组的表示 列表(list)
列表一旦创建了我们就可以根据自己的需要随意改变它的内容:
这是因为动态数组支持resize操作,可以增加数组的容量。当一个大小为N的列表第一次需要添加数据时,Python会创建一个新的列表,足够放原来的N个元素以及额外添加的元素。不过,实际分配的并不是N+1个元素,而是M个元素,M > N, 这是为了给未来的添加预留空间。然后旧列表的数据被复制到新列表中,旧列表则会被销毁。从设计理念上来说,第一次添加可能是后续多次添加的开始,通过预留空间的做法,我们就可以减少这一分配空间的操作次数以及内存复制的次数。这点非常重要,因为内存复制可能非常的昂贵,特别是当列表大小开始增长以后。
定义列表[1,2,3,4,5,6] type([1,2,3])
列表元素类型(str,number)['aaa',222,34,True]
[[1,2],[2,3,4],['a','b']]也是一种列表(嵌套列表)
在php中称为二维数组
元组(tuple)
元组是固定且不可改变的。这意味着一旦元组被创建,和列表不同,它的内容无法被修改或它的大小也无法被改变
虽然它们不支持改变大小,但是我们可以将两个元组合并成一个新元组。这一操作类似列表的resize操作,但我们不需要为新生的元组分配任何额外的空间:
如果我们将其与列表的append操作比较,我们会看到它的复杂度是O(n)而不是列表的O(1)。这是因为对元组每添加一个新元素都会有分配和复制操作,而不是像列表那样仅在额外的空间耗尽时发生。所以元组并没有提供一个类似append的自增操作,任意两个元组相加始终返回一个新分配的元组
表示方式(1,2,3,4,5,6)
(1,2,3,'aa','cc',True)
(1,2,3)[0]/(1,2,3)[0:2]/(1,2) + (3,4)
python中的序列
str、list、tuple 都是一种序列
Python切片详解
Python可切片对象的索引方式
包括:正索引和负索引两部分,如下图所示,以list对象a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]为例:
Python切片操作的一般方式
一个完整的切片表达式包含两个“:”,用于分隔三个参数(start_index、end_index、 step)。当只有一个“:”时,默认第三个参数step=1;当一个“:”也没有时, start_index=end_index,表示切取start_index指定的那个元素 • 切片操作基本表达式:object[start_index:end_index:step]
step:正负数均可,其绝对值大小决定了切取数据时的‘‘步长”,而正负号决定了 “切取方向”,正表示“从左往右”取值,负表示“从右往左”取值。当step省略时, 默认为1,即从左往右以步长1取值
start_index:表示起始索引(包含该索引对应值);该参数省略时,表示从对象“端点” 开始取值,至于是从“起点”还是从“终点”开始,则由step参数的正负决定,step为 正从“起点”开始,为负从“终点”开始。
end_index:表示终止索引(不包含该索引对应值);该参数省略时,表示一 直取到数据“端点”,至于是到“起点”还是到“终点”,同样由step参数 的正负决定,step为正时直到“终点”,为负时直到“起点”
a[-1:-3] 为空
a[-1:-3:-1]
a[-3:-1]
a[:-3]
a[:-3:-1]
a[-3:]
列表和元组的区别
- 列表是动态数组,它们可变且可以重设长度(改变其内部元素的个数)。
- 元组是静态数组,它们不可变,且其内部数据一旦创建便无法改变。
- 元组缓存于Python运行时环境,这意味着我们每次使用元组时无须访问内核去分配内存