一、基础知识
1、数和表达式
算术运算符:+、-、*、/(结果为浮点数)、//(整除,向下圆整)、%、**(乘方/求幂)
进制的前缀:二进制(0b)、八进制(0o)、十六进制(0x)
2、变量:只能有字母、数字和下划线组成,且不能以数字开头。使用变量前必须给它赋值。
3、模块:可将模块视为扩展,通过将其导入可以扩展python功能。
4、字符串
1.符号:
' ' 、" "、 转义字符、长字符串""" """、原始字符串 r(引号需要转义,不能以单个反斜杠结尾)。
长字符串、原始字符串:用于表示包含换行符或反斜杠的字符串。
常规字符串要横跨多行时,只需在行尾加上反斜杠。
2.拼接字符串:'a'+'b'。
3.字符串表示 str 和 repr:
>>> print(str('hello!
world')) # 使用str,能以合理的方式将值转换为用户能看懂的字符串
Hello,
world
>>> print(repr('hello!
world')) # 使用repr,会获得值的合法python表达式表示
'hello!
world'
5、unicode、bytes 和 bytearray
在python3中,所有的字符串都是Unicode字符串。python 字符串使用 unicode 编码来表示文本。
每个unicode字符都用一个码点表示,码点是unicode标准给每个字符指定的数字。这让你能够以任何现在软件都能识别的方式表示129个文字系统中的12万个以上的字符。
Unicode的理念很简单,但却存在编码问题。在内存和磁盘中,所有对象都是以二进制数字表示的(每8个一组-字节),字符串就是字节序列。
在诸如c等编程语言中,字节完全暴露。为与 C 语言互操作以及将文本写入文件或通过网络套接字发送出去,python 提供两种类似的类型:不可变的 bytes 和可变的 bytearray 。
6、print
# 自定义分隔符'_'
print('I', 'am', 'amy', sep='_') # 打印:I_am_amy
# 自定义结束字符串,以替换默认的换行符
print('Hello,', end='')
print('world!') # 打印'Hello,world!'
7、赋值
# 1、序列解包(可迭代对象解包):将一个序列解包,并将得到的值存储到一系列变量中
x, y, z = 1, 2, 3 # 要解包的序列中的元素个数必须与左边的目标个数相同
x, y = y, x # 交换多个变量的值
a, b, *rest = [1, 2, 3, 4] # 使用*号来收集多余的值,rest=[3, 4]
a, *b, c = 'abcd' # 赋值语句的右边可以是任何类型的序列,但带*号的变量最终包含的总是一个列表。b=['b', 'c']
# 2、链式赋值:是一种快捷方式,用于将多个变量关联到同一个值
x = y = 1 # 等价于y = 1; x = y
# 3、增强赋值:不写代码x = x + 1,将右边表达式中的运算符移到赋值运算符的前面,写成x += 1。适用于所有标准运算符:*、/、%。
8、布尔值
假:标准值False和None,各种类型(浮点数、复数)的数值0、空序列(空字符串/元组/列表)和空映射
真:其他各种值
布尔值 True 和 False 属于类型bool,bool与list、str、tuple一样,可用来转换其他值。
注意:[]和''都为假( bool([]) == bool('') ),但 [] != ''。
二、通用的序列操作
数据结构:是以某种方式(通过编号)组合起来的数据元素集合。在python中,最基本的数据结构是序列。序列中的每个元素都有索引,如列表、元组、字符串。
python支持一种数据结构的基本概念,名为容器。容器基本上就是可包含其他对象的对象。两种主要的容器是序列(列表、元组)和映射(字典)。还有一种是集合(set)。
1、索引:序列中的所有元素都有编号,从0开始递增。使用索引访问单个元素,可以使用负数索引。
2、切片:访问特定范围内的元素。提供两个索引指定切片的边界,第一个索引指定的元素在切片内,第二个不在。
a = [1, 2, 3, 4, 5]
print(a[2:-1]) # 1、负数索引,不能包含最后一个元素
print(a[2:0]) # 2、使用索引0,结果为[]。如果第一个索引指定的元素在第二个后面,结果就为空序列
print(a[:2]) # 3、切片始于序列开头,可省略第一个索引
print(a[]) # 4、复制整个序列,可将两个索引都省略
3、序列相加:不能拼接不同类型的序列
print([1,2]+[3,4]) # 结果为[1,2,3,4]
print('hello, '+'world!')
4、乘法
print('an'*5) # 字符串相乘
print([1,2]*3) # 列表相乘,结果为[1,2,1,2,1,2]
print([None]*5) # 结果为[None,None,None,None,None]
5、in 运算符:检查特定的对象是否在序列中(只能用于检查单个字符)
6、长度 len()、最大值 max()、最小值min()