Python文档学习笔记(2)--将Python用作计算
数字
基本形式没什么特殊的
>>> (50 - 5*6) / 4 5.0
除法有些特殊
>>> 17 / 3 # 除法返回浮点数 5.666666666666667 >>> >>> 17 // 3 # 地板除法丢弃小数部分 5 >>> 17 % 3 # %运算符返回余数
n次方运算
>>> 5 ** 2 25
在交互模式下,最后输出的表达式会被赋值给变量_
用户应该将这个变量视为只读的。不要试图去给它赋值 — — 你将会创建出一个独立的同名局部变量,并且屏蔽了内置变量的魔术效果。
>>> tax = 12.5 / 100 >>> price = 100.50 >>> price * tax 12.5625 >>> price + _ 113.0625 >>> round(_, 2) 113.06
Number数据类型详情(待):
字符串
可以被括在单引号 ('...'
) 或双引号 ("..."
) 中,二者等价 。\
可以用于转义'︰
>>> 'spam eggs' 'spam eggs' >>> 'doesn\'t' "doesn't" >>> "doesn't" "doesn't"
如果你不想让 \
被解释为特殊字符开头的字符,您可以通过添加 r
使用 原始字符串︰
>>> print('C:\some\name') # \n换行 C:\some ame >>> print(r'C:\some\name') # 这里不转义,所以不换行 C:\some\name
字符串可以跨多行。一种方法使用三重引号: """..."""
或 '''...'''
。行结尾会自动包含在字符串中,但它是可以通过在一行的末尾增加 \
防止以下情况。
print("""\ Usage: thingy [OPTIONS] -h Display this usage message -H hostname Hostname to connect to """)
将生成以下输出(注意,没有开始的第一行):
Usage: thingy [OPTIONS] -h Display this usage message -H hostname Hostname to connect to
字符串可以用+
操作符连接,也可以用*
操作符重复多次:
>>> 3 * 'un' + 'ium' 'unununium'
相邻的两个或多个字符串字面量(用引号引起来的)会自动连接。
这只适用于两个字面值,不适用于变量和表达式
如果你想连接多个变量或者连接一个变量和一个字面量,使用“+”
>>> 'Py' 'thon' 'Python'
字符串可以索引,第一个字符的索引值为0。Python没有单独的字符类型;一个字符就是一个简单的长度为1的字符串。
>>> word = 'Python' >>> word[0] 'P' >>> word[-1] #注意,因为 -0 和 0 是一样的,负的索引从 -1 开始 'n
除了索引,还支持切片。索引用于获得单个字符,切片让你获得子字符串:
切片索引具有非常有用的默认值;省略的第一个索引默认为零,省略第二个索引默认为切片字符串的长度。
>>> word[0:2] #总是包含开始字符,排除结束字符,看作集合的话应该是[0,2) 'Py'
试图使用太大的索引会导致错误
但是,当用于切片时,超出范围的切片索引会被得体地处理
>>> word[42] # word没有42个字符 Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: string index out of range >>> word[4:42] 'on' >>> word[42:] ''
Python 字符串不能更改 — — 他们是不可变的。因此,赋值给字符串索引的位置会导致错误:
>>> word[0] = 'J' ... TypeError: 'str' object does not support item assignment >>> word[2:] = 'py' ... TypeError: 'str' object does not support item assignment
如果你需要一个不同的字符串,你应该创建一个新的:
>>> 'J' + word[1:] 'Jython' >>> word[:2] + 'py' 'Pypy
内建函数len() 返回字符串的长度:
>>> s = 'supercalifragilisticexpialidocious' >>> len(s) 34
字符串基本数据类型详情(待):
列表
写成中括号中的一列用逗号分隔的值。列表可以包含不同类型的元素
>>> squares = [1, 4, 9, 16, 25] >>> squares [1, 4, 9, 16, 25]
列表可以被索引和切片︰
>>> squares[-1]
25
>>> squares[-3:]
[9, 16, 25]
各种切片操作会返回一个包含所请求元素的新列表。这意味着下面这个切片操作将会返回一个此列表的(浅)拷贝:
>>> squares[:]
[1, 4, 9, 16, 25]
列表也支持连接这样的操作:
>>> squares + [36, 49, 64, 81, 100] [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
>>> squares*3
[1, 4, 9, 16, 25, 1, 4, 9, 16, 25, 1, 4, 9, 16, 25]
与字符串的不可变特性不同,列表是可变的类型,例如可以改变它们的内容:
>>> cubes = [1, 8, 27, 65, 125] >>> cubes[3] = 64 >>> cubes [1, 8, 27, 64, 125]
你还可以通过append ()
方法 在列表的末尾添加新的项目
>>> cubes.append(216) >>> cubes.append(7 ** 3) >>> cubes [1, 8, 27, 64, 125, 216, 343]
赋值到切片也是可以的
>>> letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g'] >>> letters ['a', 'b', 'c', 'd', 'e', 'f', 'g'] >>> # 移除一些元素 >>> letters[2:5] = ['C', 'D', 'E'] >>> letters ['a', 'b', 'C', 'D', 'E', 'f', 'g'] >>> # 移除[2:5] >>> letters[2:5] = [] >>> letters ['a', 'b', 'f', 'g'] >>> # 移除所有 >>> letters[:] = [] >>> letters []
内建函数 len() 同样适用于列表:
>>> letters = ['a', 'b', 'c', 'd'] >>> len(letters) 4
列表可以嵌套 (创建包含其他列表的列表),例如:
>>> a = ['a', 'b', 'c'] >>> n = [1, 2, 3] >>> x = [a, n] >>> x [['a', 'b', 'c'], [1, 2, 3]] >>> x[0] ['a', 'b', 'c'] >>> x[0][1] 'b'
列表详情(待):