下一篇:流程控制<二>
阅读链接:官方Python3.7教程
废话:最近开始阅读python3.7文档,希望把容易混淆的知识记下来。
- 除法总是返回一个浮点数
>>> 8/2
4.0
>>> 4/6
0.6666666666666666
>>> - 可以使用 // 除法得到整数
>>> 8/2
4.0
>>> 4/6
0.6666666666666666
>>> - 幂运输使用 **
>>> 8/2
4.0
>>> 4/6
0.6666666666666666
>>> - 混合数字类型运输结果为浮点数
>>> 3*5.3
15.899999999999999
>>> 4+5.5
9.5 - 如果字符串中符号多而复杂,可以使用print产生更可读的输出
>>> 3*5.3
15.899999999999999
>>> 4+5.5
9.5 - 如果不希望某些字符被解释为特殊字符,可以在引号之前使用 r 或 R
>>> print('C:\some\name')
C:\some
ame
>>> print(r'C:\some\name')
C:\some\name - 字符串乘号运输,加号运算
>>> 'ba'*5+'ha'
'bababababaha'
>>> 'ba'*5+'aaaaddddda'
'bababababaaaaaddddda'
>>> - 可以通过使用引号与引号自动连接字符串,这特性适用于打破长字符串的书写
'dddddddaa'
>>> test=('heiheiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
... 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb')
>>> print(test)
heiheiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
>>> - 索引可以为负数,从右边开始算
>>> text[-1]
'c'
>>> text[-9]
'a'
>>> - 字符串切片,开始索引元素总被包含,最后索引元素不包含
>>> text="abcd"
>>> text[0:1]
'a' - 通常情况下,索引超出范围会发生异常,但是切片不会
>>> text="abcde"
>>> text[5]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: string index out of range
>>> text[9:90]
''
>>> text[2:90]
'cde'
>>> - 字符串不能被更改,需要新的不同字符串,重新创造
>>> text="opq"
>>> text[0]='a'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
>>> text="apq" - list支持+(连接)、*操作(重复连接)
>>> a=[2]*3
>>> a
[2, 2, 2]
>>> a[0]=3
>>> a
[3, 2, 2]
>>> b=[4]*3
>>> b
[4, 4, 4]
>>> a+b
[3, 2, 2, 4, 4, 4]
>>> - 切片可以改变列表大小,甚至完全清空 (e.g:嵌套列表)
>>> a=[3,3,4,5,5,6,677,7]
>>> a[1:3]
[3, 4]
>>> a=[3,3,4,5,5,6,677,7]
>>> a[1:5]=[]
>>> a
[3, 6, 677, 7]
>>> a[:]=[]
>>> a
[]
>>> a=[3,2,3,4,4]
>>> a[1:3]=[[0],[2,4]]
>>> a
[3, [0], [2, 4], 4, 4]
>>> - 任何非零数值和非零长度的东西可以为True类型(e.g:至少一元素的序列与字符串、0.0、2),否则为False类型(e.g:None、0、[]、())
>>> bool('1')
True
>>> bool('0')
True
>>> bool('aaa')
True
>>> bool('')
False
>>> bool('[2,3]')
True
>>> bool('[]')
True
>>> bool('0.0')
True