数字

基本运算

表达式的语法很直接:运算符 +、-、*、/ 的用法和其他大部分语言一样(比如 Pascal 或者 C 语言);括号 (()) 用来分组。

>>> 1+2
3
>>> 1-2
-1
>>> 3*2
6
>>> 3/2
1.5
>>> 1*(2+3)
5

除法运算

除法运算 (/) 永远返回浮点数类型。

如果要做 floor division 得到一个整数结果(忽略小数部分)你可以使用 // 运算符;

如果要计算余数,可以使用 %

>>> 2/3
0.6666666666666666
>>> 2//3
0
>>> 2%3
2

乘方

在Python中,可以使用 ** 运算符来计算乘方

>>> 5**2
25
>>> 4**2
16

变量赋值

等号 (=) 用于给一个变量赋值。然后在下一个交互提示符之前不会有结果显示出来:

>>> a=3
>>> b=4
>>> a*b
12
  • 未定义的变量

如果一个变量未定义(未赋值),试图使用它时会向你提示错误:

>>> c
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'c' is not defined

数字类型

int

float

BigDecimal

Fraction

Python 也内置对 复数 的支持,使用后缀 j 或者 J 就可以表示虚数部分(例如 3+5j )。

字符串

除了数字,Python 也可以操作字符串。字符串有多种形式,可以使用单引号(''),双引号("")都可以获得同样的结果。

反斜杠 \ 可以用来转义:

>>> 'hello py'
'hello py'
>>> "hello py"
'hello py'
>>> "hello p\"y"
'hello p"y'

原始字符串

如果你不希望前置了 \ 的字符转义成特殊字符,可以使用原始字符串方式,在引号前添加 r 即可:

>>> print('C:\some\name')
C:\some
ame
>>> print(r'C:\some\name')
C:\some\name

跨行输入

字符串字面值可以跨行连续输入。

一种方式是用三重引号:"""..."""'''...'''

字符串中的回车换行会自动包含到字符串中,如果不想包含,在行尾添加一个 \ 即可。

如下例:

>>> print("""hello)
... muliti
... line""")
hello)
muliti
line

连接和重复

字符串可以用 + 进行连接(粘到一起),也可以用 * 进行重复:

>>> 3*"googd" + "times"
'googdgoogdgoogdtimes'

ps: 这几点就比 java 方便了太多。

自动连接

相邻的两个或多个字符串字面值 (引号引起来的字符)将会自动连接到一起.

>>> "Py" "thon"
'Python'

ps: 变量无法这么使用,你可以使用 + 来进行连接。

下标访问

字符串是可以被索引(下标访问)的,第一个字符索引是 0。

单个字符并没有特殊的类型,只是一个长度为一的字符串:

ps: 个人理解是字符的集合。

>>> "python"[0]
'p'

索引也可以用负数,这种会从右边开始数:

(在 java 中,这就会越界。)

>>> "python"[-1]
'n'

注意 -0 和 0 是一样的,所以负数索引从 -1 开始。

切片

除了索引,字符串还支持 切片。索引可以得到单个字符,而 切片 可以获取子字符串:

ps: 感觉是对 String.subString(start, end) 的语法糖。

>>> "python"[1:3]
'yt'
>>> "python"[-2:-4]
''
>>> "python"[-4:-2]
'th'

注意切片的开始总是被包括在结果中,而结束不被包括。这使得 s[:i] + s[i:] 总是等于 s

切片的默认值

切片的索引有默认值;省略开始索引时默认为0,省略结束索引时默认为到字符串的结束:

>>> "python"[-4:]
'thon'
>>> "python"[:-2]
'pyth'

切片和下标访问的不同

  • 使用过大的索引会产生一个错误:
>>> "python"[43]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: string index out of range
  • 切片中的越界索引会被自动处理:
>>> "python"[2:43]
'thon'

列表

Python 中可以通过组合一些值得到多种复合数据类型。

其中最常用的列表,可以通过方括号括起、逗号分隔的一组值得到。

一个列表可以包含不同类型的元素,但通常使用时各个元素类型相同:

创建

>>> list = [1,2,3,4,5]
>>> list
[1, 2, 3, 4, 5]

索引和切片

和字符串及各种内建的 sequence 类型一样,列表也支持索引和切片:

>>> list[0]
1
>>> list[2:3]
[3]
>>> list[2:]
[3, 4, 5]

返回的对象

所有的切片操作都返回一个新列表,这个新列表包含所需要的元素。

就是说,如下的切片会返回列表的一个新的(浅)拷贝:

>>> list[:]
[1, 2, 3, 4, 5]

列表的操作

组合

>>> list + [7,8,9]
[1, 2, 3, 4, 5, 7, 8, 9]

更新

与 immutable 的字符串不同, 列表是一个 mutable 类型,就是说,它自己的内容可以改变:

>>> list[1]=99
>>> list
[1, 99, 3, 4, 5]

append()

你也可以在列表结尾,通过 append() 方法 添加新元素 (我们会在后面解释更多关于方法的内容):

>>> list.append(8)
>>> list
[1, 99, 3, 4, 5, 8]

更新切片

给切片赋值也是可以的,这样甚至可以改变列表大小,或者把列表整个清空:

>>> list[:]=[]
>>> list
[]

嵌套列表

也可以嵌套列表 (创建包含其他列表的列表), 比如说:

>>> list.append(0)
>>> list
[0]
>>> newlist = [list, 2,34]
>>> newlist
[[0], 2, 34]

参考资料

https://docs.python.org/zh-cn/3/tutorial/introduction.html