我们在加到前面那首诗中,此时我们想取‘一’字又该怎么做呢?
poetry = "最是那一低头的温柔,像一朵水莲花不胜凉风的娇羞"
下标法:
如果要取‘扬’字,那我们从第1个字符,从0数起,那么‘一’应该是3,则可以表示的代码为:
poetry = "最是那一低头的温柔,像一朵水莲花不胜凉风的娇羞"
print(poetry[3])
运行后得到的结果为:
这是从左往右数,为正整数。同样的,我们也可以从右往左数,比如取‘风’字,则可以:
poetry = "最是那一低头的温柔,像一朵水莲花不胜凉风的娇羞"
print(poetry[3])
print(poetry[-4])
运行后得到的结果为:
从左往右数,为正整数。从右往左数,则是从-1开始。这在python中叫下标取值。下标取值,可以在后面讲到的数据类型,元组、列表中使用,同时也可以在很多自定义类中使用。
切片法:
如果我们想取‘一低头’的温柔,又怎么取呢?我们可以想象一下,如果手里有两把标尺,那么我们只需要同时按下标法,切下去即可,所以可以这样表示:
运行结果:
为什么不是poetry([2:5])呢,因为此语法的规则是,左闭右开。要想取的字符,在右边需要+1。如果想取‘一朵水莲花’,那么我们可以:
print(poetry[-12:-7])
运行结果:
如果我们想取‘娇羞’,那么我们可以省略右边的区间,则只需要:
print(poetry[-2:])
运行的结果:
同样,我们要取‘最是那一低头的温柔’,则可以:
print(poetry[:9])
运行结果:
如果字符串很多,我们无法数出是第几个位置时怎么办呢?此时我们只需结合前面字符串的方法,使用str.index(字符串)来获取开始、结束的位置,再使用切片,即可获取到内容:
start_index = poetry.index('一朵')
end_index = poetry.index('不胜')
print(poetry[start_index:end_index])
运行结果:
最后总结:
1. 下标法,从左往右数是从0开始;从右往左数是-1开始。
2. 切片取值时,是左闭右开,右边的下标数需要+1。
3. 灵活的取值方法,可能会结合前文讲到的字符串的方法。