字符串切片:

字符串的每个字符的下标,第一个字符从0开始,依次递增。
除了第一个字符,其他字符还有对应的负的下标,负的下标值参考下表。
下标-1的就是最后一个字符,可以把字符串再接一遍,这样下标就连续了。
给字符串命名为str1,str1=“0123456789”

原本的字符串

-

-

-

-

-

-

-

-

-

0

1

2

3

4

5

6

7

8

9

接上后的字符串

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

下标

-9

-8

-7

-6

-5

-4

-3

-2

-1

0

1

2

3

4

5

6

7

8

9

str1切片操作的语句是

str1[star:end+1: stride]
    # str_name[star:end: stride]
    # star是你想要切出来的那段字符的第一个字符的下标,正负都可以,下面一样
    # end+1是想切出来的那段字符的最后一个字符的下标+1
    # stride是你要切的字符是相隔多长的,即步长

具体操作例子:

str1 = str('0123456789')
    
    a1=str1[:]# 都不填就相当切了全部
    print('a1 =',a1)

    b1 = str1[:3]# star不填,从第一个字符开始切片
    print('b1 =',b1)

    c1 = str1[:3]# end不填,切片到最后一个字符
    print('c1 =',c1)

    d1 = str1[::3]# stride填正数,从star开始,到end为止,顺序输出下标间隔stride的字符
    print('d1 =',d1)
    
    e1=str1[3:0:-1]# stride填负数,则star开始,到end为止,逆序输出下标间隔stride的字符,star、end不填则直接从最后一个字符开始逆序输出
    print('e1 =',e1)

    f1 = str1[1:8:]# 普通例子
    print('f1 =', f1)

运行结果:

python连续切片 python 切片 -1_python连续切片

其他操作

str1 = "my name is huang!"

    # 字符窜长度
    a = str1.__len__()
    print('a =', a)

    # 改变大小写,返回字符窜
    b = str1.capitalize()  # 首字母大写
    print('b =',b)
    c = str1.upper()  # 全部大写
    print('c =',c)

    # 指定字符窜,返回开下标
    d = str1.find(' nn')  # 从字符串中查找子串开始下标,没有则为-1
    print('d =',d)
    e = str1.index('my')  # 与find类似但找不到子串时会抛出异常
    print('e =',e)

    # 检查字符串是否以指定的字符串开始或结尾,返回bool
    f = str1.startswith('my')
    print('f =',f)
    g = str1.endswith(('huang'))
    print('g=',g)

    # 设置字符窜宽度并填充指定字符,宽度小于等于字符窜长度时,输出字符窜本身
    h = str1.center(1, '*')  # 字符窜居中,填充在两侧
    print('h =',h)
    i = str1.rjust(20, '*')  # 字符窜居右,填充在左侧,小于str1长度时,输出str1本身
    print('i=', )
    j = str1.ljust(-5, '*')
    print('j =',j)

运行结果:

python连续切片 python 切片 -1_字符串_02

完整代码

def cut():
    """"
    字符串切片相关操作:
    语句:str_name[star:end: stride]
    形参说明:
    star是你想要切出来的那段字符的第一个字符的下标,正负都可以(等价),下面一样
    end+1是想切出来的那段字符的最后一个字符的下标+1
    stride是你要切的字符是相隔多长的,即步长
    定义操作的字符串str1
    实参说明:
    参数可以省略,但是第一个冒号不能省,第二个可以,
    省略star则默认star=0,即从第一个字符开始切
    省略star则默认star = len(str1)+1,即切到最后一个字符
    省略stride则默认stride=1,必须为正整数,否则会报错
    """

    str1 = str('0123456789')

    a1 = str1[:]  # 都不填就相当切了全部
    print('a1 =', a1)

    b1 = str1[:3]  # star不填,从第一个字符开始切片
    print('b1 =', b1)

    c1 = str1[3:]  # end不填,切片到最后一个字符
    print('c1 =', c1)

    d1 = str1[::3]  # stride填正数,从star开始,到end为止,顺序输出下标间隔stride的字符
    print('d1 =', d1)

    e1 = str1[3:0:-1]  # stride填负数,则star开始,到end为止,逆序输出下标间隔stride的字符
    print('e1 =', e1)

    f1 = str1[1:8:2]  # 普通例子
    print('f1 =', f1)

    g1 = str1[1:-2:2]  # 正负下标是等价的
    print('g1 =', g1)


def other():
    str1 = "my name is huang!"

    # 字符窜长度a
    a = str1.__len__()
    print('a =', a)

    # 改变大小写,返回字符窜
    b = str1.capitalize()  # 首字母大写
    print('b =', b)
    c = str1.upper()  # 全部大写
    print('c =', c)

    # 指定字符窜,返回开下标
    d = str1.find(' nn')  # 从字符串中查找子串开始下标,没有则为-1
    print('d =', d)
    e = str1.index('my')  # 与find类似但找不到子串时会抛出异常
    print('e =', e)

    # 检查字符串是否以指定的字符串开始或结尾,返回bool
    f = str1.startswith('my')
    print('f =', f)
    g = str1.endswith(('huang'))
    print('g=', g)

    # 设置字符窜宽度并填充指定字符,宽度小于等于字符窜长度时,输出字符窜本身
    h = str1.center(1, '*')  # 字符窜居中,填充在两侧
    print('h =', h)
    i = str1.rjust(20, '*')  # 字符窜居右,填充在左侧,小于str1长度时,输出str1本身
    print('i=', )
    j = str1.ljust(-5, '*')
    print('j =', j)


def main():
    cut()
    other()


if __name__ == '__main__':
    main()

参考:github-python100Day