1.1 数字
-
运算符:+、-、*、/的用法和大部分语言一样(比如:C语言);括号()用来分组。
>>> 2 + 2 4 >>> 100 - 3*5 85 >>> (133 - 13*3)/4 23.5 >>>
-
整数(比如:1,3,5,6)的类型是 int,有小数部分的(比如:1.1,1.5)的类型是 float。
除法运算(/)永远返回浮点数类型。如果要得到一个整数结果(忽略小数部分)可以使用(//)运算符;如果要计算余数,可以使用(%)。
>>> 17/3 5.666666666666667 >>> 17//3 5 >>> 17%3 2 >>>
-
在Python中,可以使用(**)运算符计算乘方
>>> 2**4 16 >>> 3**3 27 >>>
-
等号(=)用于给一个变量赋值。
>>> height = 180 >>> weight = 70 >>> height*weight 12600 >>>
-
如果一个变量未定义(未赋值),会报错。
>>> high Traceback (most recent call last): File "<pyshell#15>", line 1, in <module> high NameError: name 'high' is not defined
-
Python中提供浮点数的完整,包含多种混合类型运算符的运算会把整数转换为浮点数
>>> 4 * 2.2 - 1 7.800000000000001 >>>
-
在交互模式下,上一次打印出来的表达式被赋值给变量(_)。这意味着当你把Python用作桌面计算器时,继续计算会相对简单。
>>> a = 12.5 / 100 >>> b = 100.20 >>> a * b 12.525 >>> b + _ 112.72500000000001 >>> round(_,2) 112.73 >>>
这个变量因该被使用者当作只读类型。不要向它显示地赋值 -- 你会创建一个和它名字相同独立的本地变量,会屏蔽内部变量。
除了(int)和(float),Python也支持其他类型的数字,例如(Decimal)或(Fraction)。Python也可以表示复数,用后缀 j 或 J 可以表示虚数部分(例如 3+5j)。
1.2 字符串
-
Python字符串有多种形式,可以使用单引号(' '),双引号(" "),反斜杠(\)可以用来转义。
>>> 'hello world' 'hello world' >>> 'dosen\'t' "dosen't" >>> 'you "too"' 'you "too"' >>> 'you\"is a pig' 'you"is a pig' >>>
-
print( )函数会生成可读性更强的输出,可以省区两边的引号,并打印出经过转义的特殊字符。
>>> 'hello world' 'hello world' >>> 'dosen\'t' "dosen't" >>> 'you "too"' 'you "too"' >>> 'you\"is a pig' 'you"is a pig' >>> print('hello world') hello world >>> print('dosen\'t') dosen't >>> print('you \"is\" a pig') you "is" a pig >>> s = "Hello World" >>> print(s) Hello World >>>
-
如果你不想前置(\)的字符转义称特殊字符,可以使用原始字符串方式,在引号前添加(r)即可。
>>> print('C:\some\ame') C:\some me >>> print(r'C:\some\ame') C:\some\ame
-
字符串面值可以跨行连续输入。一种方式是用三重引号:""" """ 或''' '''。字符串中的回车换行会自动包含到字符串中,如果不想包含,在行尾添加一个(\)即可。
>>> print(""" You are a pig -fns -fff """) You are a pig -fns -fff >>>
-
字符串可以用(+)进行连接(粘到一起),也可以用(*)进行重复。
>>> 3*'hello world' 'hello worldhello worldhello world'
-
相邻的两个或多个字符串字面值(引号引起来的字符)将会自动连接到一起。
>>> 'hello' 'world' 'helloworld'
-
把很长的字符串拆开分别输入的时候有用
>>> txt = ('you are a pig' 'Do you know') >>> txt 'you are a pigDo you know'
-
只能对两个字面值这样操作,变量或表达式不行。
>>> a = 'py' >>> a 'thon' SyntaxError: invalid syntax
-
如果你想连接变量,或者连接变量和字面值,可以用(+)号。
>>> a = 'py' >>> a + 'thon' 'python'
-
字符串是可以被索引(下标访问)的,第一个字符的索引为0。
>>> word = 'python' >>> word[0] 'p' >>> word[3] 'h'
-
索引也可以是负数,这样会从右边开始数
>>> word[-1] 'n' >>> word[-3] 'h'
-
0和-0是一样的,所以负数索引从-1开始。
除了索引,字符串还支持切片,索引可以得到单个字符,而且切片可以获取子字符串。
>>> word[0:2] 'py' >>> word[2:4] 'th'
-
注意切片的开始总是被包含在结果中,结束不被包含。(左闭右开)
>>> word[:2]+word[2:] 'python' >>> word[:3]+word[3:] 'python'
-
切片的索引有默认值,省略开始索引时默认为0,省略结束索引时默认为字符串结束。
>>> word[:2] 'py' >>> word[2:] 'thon' >>> word[-3:] 'hon'
-
也可以理解为:将索引视作指向字符之间,第一个字符的左侧标为0,最后一个字符的右侧标为n,其中n是字符串长度。(使用过大的索引会产生错误)
-
但是,切片中的越界索引会被自动处理
>>> word[2:11] 'thon' >>> word[11:] ''
-
Python中的字符串不能被修改,它们是immutable的。因此,向字符串的某个索引位置幅值会产生错误。
>>> word[0] = 'a' Traceback (most recent call last): File "<pyshell#42>", line 1, in <module> word[0] = 'a' TypeError: 'str' object does not support item assignment
-
如果需要一个不同的字符串,应当新建一个:
>>> 'a' + word[1:] 'aython' >>> word[:3] + 'a' 'pyta'
-
内置函数len()返回一个字符串的长度
>>> s = 'youarsdfe' >>> len(s) 9 >>>
其他的一些操作
-
[文本序列类型 -- str](内置类型 — Python 3.9.6 文档)
字符串是一种序列类型,支持序列类型的各种操作
-
[字符串的方法](内置类型 — Python 3.9.6 文档)
字符串支持许多变换和查找的方法
-
[格式化字符串字面值](2. 词法分析 — Python 3.9.6 文档)
内嵌表达式的字符串字面值
-
[格式字符串语法](2. 词法分析 — Python 3.9.6 文档)
使用str.format()进行字符串格式化
-
[printf风格的字符串格式化](内置类型 — Python 3.9.6 文档)
这里详述了使用%运算符进行字符串格式化。
1.3 列表
-
Python可以通过一些值得到多种复合数据结构。列表可以通过方括号括起、逗号分割得到。
一个列表可以包含不同类型的元素,通常情况下使得各个元素类型相同。
>>> square = [1,4,5,6,7,8] >>> square [1, 4, 5, 6, 7, 8]
-
和字符串一样,列表也支持索引和切片。
>>> square[0] 1 >>> square[-1] 8 >>> square[-4:] [5, 6, 7, 8]
-
所有切片操作都会返回一个包含所请求元素的新列表。(切片操作会返回列表的一个浅拷贝)。
>>> square[:] [1, 4, 5, 6, 7, 8]
-
列表支持拼接操作
>>> square+[2,4,5,4] [1, 4, 5, 6, 7, 8, 2, 4, 5, 4]
-
与immutable的字符串不同(不可变),列表是一个mutable(可变)类型,它自己的内容可变。
>>> quare = [1,4,6,7,8] >>> 4**4 256 >>> quare[3]=256 >>> quare [1, 4, 6, 256, 8]
-
可以在列表结尾,通过append()方法添加新元素。
>>> quare.append(122) >>> quare.append(2**3) >>> quare [1, 4, 6, 256, 8, 122, 8]
-
也可以给切片幅值,甚至可以改变列表大小,或把整个列表清空:
>>> letter = ['a','f','d','wd'] >>> letter ['a', 'f', 'd', 'wd'] >>> letter[2:5] ['d', 'wd'] >>> letter ['a', 'f', 'd', 'wd'] >>> letter[2:5] ['d', 'wd'] >>> letter[1:3] = [] >>> letter ['a', 'wd'] >>> letter[:]=[] >>> letter []
-
内置函数len()可以得出列表的长度
>>> letter=['s','we','ds'] >>> len(letter) 3
-
也可以嵌套列表(创建包含其他列表的列表)
>>> a = ['a','d','d'] >>> n = [1,2,3] >>> x = [a,n] >>> x [['a', 'd', 'd'], [1, 2, 3]] >>> x [['a', 'd', 'd'], [1, 2, 3]] >>> x[0] ['a', 'd', 'd'] >>> x[0][1] 'd' >>> x[1][2] 3