字符串是若干字符的序列。
字符串是不可变的。
创建一个字符串:
>>> water = 'water water EveryWhere'
>>> water
'water water EveryWhere'
索引 切片
类似于列表,可以对字符串进行索引和切片(截取)。
字符串中,第1个字母的索引是0,第2个字母的索引是1……
也可以使用负索引,最后1个字母的索引是-1,倒数2个字母的索引时-2……
>>> water
'water water EveryWhere'
>>> water[0]
'w'
>>> water[-1]
'e'
>>> water[4:]
'r water EveryWhere'
>>> water[:9]
'water wat'
>>> water[4:9]
'r wat'
对于切片操作,包含第一个字母,而不包含最后一个字母。
字符串是不可变的,虽然我们可以对变量重新赋值,但不可以修改字符串:
>>> water
'water water EveryWhere'
>>> water[2] = 'b' # 修改字符串
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
>>> water = 'abc' # 对变量water重新赋值
>>> water
'abc'
遍历字符串
可以使用while循环遍历字符串:
>>> index = 0
>>> while index < len(water):
... print ('%2d: %s' % (index, water[index]) )
... index = index + 1
...
0: w
1: a
2: t
3: e
4: r
5:
6: w
7: a
8: t
9: e
10: r
11:
12: E
13: v
14: e
15: r
16: y
17: W
18: h
19: e
20: r
21: e
其中,print()
函数中%2d
表示占两个字符宽度的整数。len()
函数返回字符串中字符的个数。
这里例子中通过变量index
的自增,通过string[index]
的形式遍历字符串。
也可以使用for循环遍历字符串:
>>> water
'water water EveryWhere'
>>> for letter in water:
... print (letter)
...
w
a
t
e
r
w
a
t
e
r
E
v
e
r
y
W
h
e
r
e
in
使用in
判断字符串是否在某个字符串中:
>>> water
'water water EveryWhere'
>>> 'ate' in water
True
"""
有的时候需要输入多行字符串,这个时候就需要使用"""
了:
>>> water = """
... water
... water
... EveryWhere
... """
>>> water
'\nwater\nwater\nEveryWhere\n'
>>> print (water)
water
water
EveryWhere
>>>
操作字符串的一些函数
使用S.lower()
将字符串S
中的所有字母转换为小写字母,并且作为新字符串返回。
>>> water
'water water EveryWhere'
>>> water_lower = water.lower()
>>> water_lower
'water water everywhere'
>>> water
'water water EveryWhere'
使用S.upper()
将字符串S
中所有字母转换为大写字母,并且作为新字符串返回。
>>> water
'water water EveryWhere'
>>> water.upper()
'WATER WATER EVERYWHERE'
S.count(sub, start, end)
返回字符串S
的切片(起于start
,终于end
(不包括),且这两个参数可选)中字符串sub
的个数。
>>> water
'water water EveryWhere'
>>> water.count ('er')
4
>>> water.count ('er', 5)
3
>>> water.count ('er', 5, 8)
0
S.count(sub, start, end)
返回字符串S
的切片(其余start
,终于end
(不包括),且这两个参数可选)中第一次出现字符串sub
的正索引。如果没有,返回-1.
>>> water
'water water EveryWhere'
>>> water.find('er')
3
>>> water.find('er', 4)
9
>>> water.find('er', 4, 7)
-1
S.replace (old, new, count)
,将字符串S
中的字符串old
替换为字符串new
,并作为新字符串返回。参数count
可选,如果它被指定,则替换不会超过count
次。
>>> water
'water water EveryWhere'
>>> water.replace ('wat', 'taw')
'tawer tawer EveryWhere'
S.lstrip(chars)
删除字符串S
左侧的字符串chars
或者空白字符(chars
未指定),并作为新字符串返回。
S.rstrip(chars)
删除字符串S
右侧的字符串chars
或者空白字符(chars
未指定),并作为新字符串返回。
S.strip(chars)
在字符串S
上执行S.lstrip(chars)
和S.rstrip(chars)
。
>>> monkey
' diu diu diu diu '
>>> monkey.lstrip()
'diu diu diu diu '
>>> monkey.rstrip()
' diu diu diu diu'
>>> monkey.strip()
'diu diu diu diu'
网友评论