我们在加到前面那首诗中,此时我们想取‘一’字又该怎么做呢?

poetry = "最是那一低头的温柔,像一朵水莲花不胜凉风的娇羞"

下标法:

如果要取‘扬’字,那我们从第1个字符,从0数起,那么‘一’应该是3,则可以表示的代码为:

poetry = "最是那一低头的温柔,像一朵水莲花不胜凉风的娇羞"
print(poetry[3])

运行后得到的结果为:

 

python 字符串取点之前的 python取字符串中的字符_字符串

 

这是从左往右数,为正整数。同样的,我们也可以从右往左数,比如取‘风’字,则可以:

poetry = "最是那一低头的温柔,像一朵水莲花不胜凉风的娇羞"
print(poetry[3])
print(poetry[-4])

运行后得到的结果为:

python 字符串取点之前的 python取字符串中的字符_python 字符串取点之前的_02

 

从左往右数,为正整数。从右往左数,则是从-1开始。这在python中叫下标取值。下标取值,可以在后面讲到的数据类型,元组、列表中使用,同时也可以在很多自定义类中使用。

切片法:

 

如果我们想取‘一低头’的温柔,又怎么取呢?我们可以想象一下,如果手里有两把标尺,那么我们只需要同时按下标法,切下去即可,所以可以这样表示:

运行结果:

python 字符串取点之前的 python取字符串中的字符_取值_03

 

为什么不是poetry([2:5])呢,因为此语法的规则是,左闭右开。要想取的字符,在右边需要+1。如果想取‘一朵水莲花’,那么我们可以:

print(poetry[-12:-7])

运行结果:

python 字符串取点之前的 python取字符串中的字符_python 字符串取点之前的_04

 

如果我们想取‘娇羞’,那么我们可以省略右边的区间,则只需要:

print(poetry[-2:])

运行的结果:

python 字符串取点之前的 python取字符串中的字符_取值_05

 

同样,我们要取‘最是那一低头的温柔’,则可以:

print(poetry[:9])

运行结果:

python 字符串取点之前的 python取字符串中的字符_python_06

 

如果字符串很多,我们无法数出是第几个位置时怎么办呢?此时我们只需结合前面字符串的方法,使用str.index(字符串)来获取开始、结束的位置,再使用切片,即可获取到内容:

start_index = poetry.index('一朵')
end_index = poetry.index('不胜')
print(poetry[start_index:end_index])

运行结果:

python 字符串取点之前的 python取字符串中的字符_python 字符串取点之前的_07

 

最后总结:

1. 下标法,从左往右数是从0开始;从右往左数是-1开始。

2. 切片取值时,是左闭右开,右边的下标数需要+1。

3. 灵活的取值方法,可能会结合前文讲到的字符串的方法。