Day 5 :字符串与序列
字符串
1)形式
单引号 ’ ’
双引号==" "==
2)转义
符号前添加 \
3)换行
\n 需要使用print()
4)连接
- 相邻的两个或多个 字符串字面值 (引号引起来的字符)将会自动连接到一起*.只能对两个字面值这样操作,变量或表达式不行*
>>>'Py''thon'
'Python'
- 连接变量,或者连接变量和字面值 +
>>> prefix = 'Py'
>>> prefix + 'thon'
'Python
5)重复 *
6)索引(下标访问)
>>> word = 'Python'
>>> word[0] # character in position 0
'P'
>>> word[5] # character in position 5
'n'
- 索引也可以用负数,这种会从右边开始数 负数索引从 -1 开始
- 使用过大的索引会产生一个错误
>>> word[42] # the word only has 6 characters
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: string index out of range
7)切片 (索引可以得到单个字符,而切片可以获取子字符串)
>>> word = 'Python
>>> word[:2] # character from the beginning to position 2 (excluded)
'Py'
>>> word[4:] # characters from position 4 (included) to the end
'on'
>>> word[-2:] # characters from the second-last (included) to the end
'on'
- 切片的索引有默认值;省略开始索引时默认为0,省略结束索引时默认为到字符串的结束
- 对于使用非负索引的切片,如果索引不越界,那么得到的切片长度就是起止索引之差。例如, word[1:3] 的长度为2.
- 切片中的越界索引会被自动处理
>>> word[4:42]
'on'
>>> word[42:]
''
8)不可修改
字符串不能被修改,它们是 immutable 的。因此,向字符串的某个索引位置赋值会产生一个错误
需要一个不同的字符串,应当新建一个
>>> word = 'Python
>>> word[0] = 'J'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
>>> word[2:] = 'py'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
9)跨行连续输入
①使用三重引号 ‘’’ ‘’’ 或 “”" “”"
字符串中的回车换行会自动包含到字符串中,如果不想包含,在行尾添加一个 \ 即可
原始字符串
在引号前添加 r
\ 不会转义为特殊字符
字符串常用函数
- .capitalize()
字符串的第一个字符改为大写 - casefold()
将整个字符串的所有字符改成小写 - cente()
将字符串居中,并使用空格填充至长度新字符串 - count()
计算在字符串出现的次数 - endswith(…)
判断字符串输是否以…结束 若是则返回true 否则返回 false。 - expandtabs([tabsize=8])
将字符串中的tab符号(\t)转换为空格,如不指定参数,默认的空格是tabsize=8 - find()
将检测字符串是否包含在字符串中,如果有则返回索引值,否则返回-1 - index()
与find相似,但是如果字符串不存在会返回异常。 - isdigit()
如果字符串是只包含数字则返回true否则返回falsse - istitle()
如果字符串是标题化(所有的单词都是以大写开始,其余字母均小写)。正确则返回true,否则返回false - join()
以字符串作为分隔符,插入到字符串中所有的字符之间 - lower()
转换字符串中所有大写字符为小写 - upper()
转换字符串中所有小写字符为大写 - istrip()
去掉字符串左边的所有空格 - rstrip()
去掉字符串末尾的空格 - partition(sub)
找到字符串sub,把字符串分成一个3元组(pre_sub,sun,fol_sub).如果字符串中不包含sub则返回(‘原字符串’,‘ ’,‘ ’) - replace(old,new[,count])
将字符串中old子字符串替换成new子字符串,如果count指定,则替换不超过count次。 - **rfind() **
类似find 不过从右边查起。 - strip([chars])
- 删除字符串前边和后边所以的空格,chars参数可以定制删除的字符,可选。
- *swapcase
翻转字符串的大小写。 - translate(table)
根据table规则(可由str.maketrans(‘a’,‘b’)定制)转换字符串中的字符
序列
常见序列类型包括字符串(普通字符串和unicode字符串),列表和元组.所谓序列,即成员有序排列,可通过下标访问.
序列都有
索引
切片
乘法
成员资格