python字符串和列表
import sys
#sys.argv[0] 被设定为指定模块的全名
#脚本名和附加参数传入一个名为 sys.argv 的字符串列表。你能够获取这个列表通过执行 import sys,列表的长度大于等于1;
if __name__ == '__main__':
print(sys.argv[0])
字符串:
'\' 可以用来转义引号:
>>> 'doesn't' #未使用'\'转义
File "<stdin>", line 1
'doesn't'
^
SyntaxError: invalid syntax
>>> 'doesn\'t'
"doesn't"
>>>
如果你前面带有\
的字符被当作特殊字符,你可以使用原始字符串,方法是在第一个引号前面加上一个r
:
>>> print('C:\some\name') # here \n means newline!
C:\some
ame
>>> print(r'C:\some\name') # note the r before the quote
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 times 'un', followed by 'ium'
>>> 3 * 'un' + 'ium'
'unununium'
索引也可以是负数,这将导致从右边开始计算
除了索引,还支持 切片。索引用于获得单个字符,切片 让你获得一个子字符串:
注意,包含起始的字符,不包含末尾的字符。这使得 s[:i] + s[i:]
永远等于 s
:
切片的索引有非常有用的默认值;省略的第一个索引默认为零,省略的第二个索引默认为切片的字符串的大小。
有个办法可以很容易地记住切片的工作方式:切片时的索引是在两个字符 之间 。左边第一个字符的索引为 0,而长度为 n 的字符串其最后一个字符的右界索引为 n。例如:
+---+---+---+---+---+---+
| P | y | t | h | o | n |
+---+---+---+---+---+---+
0 1 2 3 4 5 6
-6 -5 -4 -3 -2 -1
对于非负索引,如果上下都在边界内,切片长度就是两个索引之差。例如,word[1:3]
是 2 。
列表:
cubes.append(216) #添加元素
>>> print(range(10))
range(0, 10)
在不同方面 range() 函数返回的对象表现为它是一个列表,但事实上它并不是。当你迭代它时,它是一个能够像期望的序列返回连续项的对象;但为了节省空间,它并不真正构造列表。
我们称此类对象是 可迭代的,即适合作为那些期望从某些东西中获得连续项直到结束的函数或结构的一个目标(参数)。我们已经见过的 for 语句就是这样一个迭代器。list() 函数是另外一个( 迭代器 ),它从可迭代(对象)中创建列表:
>>> list(range(5))
[0, 1, 2, 3, 4]