import sys

def splitStr(strs):
    if len(strs) >= 8:
        print(strs[0:8])
        splitStr(strs[8:])
    elif len(strs) != 0:
        print(strs.ljust(8, '0'))

strs = input()
splitStr(strs)

1、字符串和列表都有切片的功能,a[i:j:k],i是起始索引,j是结束索引,k是步长

[0:8] 在 Python 的切片操作中并不包括终止索引 8 本身。它表示从索引 0 开始,直到索引 8 之前结束,也就是取索引 0 到 7 的元素。因此,[0:8] 会包含 8 个字符,而不是 9 个。

[8:]第8个元素之后的元素

2、这里用了一个递归,将前面8个之后元素再作为参数放入函数

3、字符串填充函数str.ljust(width, fillchar) 是一个字符串方法,用于将字符串左对齐,并使用指定的填充字符(fillchar)将其填充到指定的宽度(width)。如果原始字符串的长度已经大于或等于指定的宽度,则返回原始字符串。

strs.ljust(8, '0') 这段代码的意思是:

  • strs 是一个字符串变量。
  • 8 是指定的宽度,即你想要得到的字符串的总长度。
  • '0' 是填充字符,即在需要填充空间的位置使用的字符。

该方法将 strs 字符串左对齐,并在其右侧使用 '0' 字符填充,直到字符串的总长度达到8个字符。如果 strs 的长度已经大于或等于8,则直接返回 strs

例如:

strs = "abc" 
result = strs.ljust(8, '0')  
print(result)  # 输出 "abc00000"

在这个例子中,原始字符串 "abc" 的长度是3,所以我们需要在其右侧添加5个 '0' 字符,以使其总长度达到8。最终得到的字符串是 "abc00000"

切片的补充:

切片(Slicing)在Python中是一个非常强大的工具,主要用于处理序列类型的数据,如列表(list)、元组(tuple)和字符串(str)。以下是切片的一些常见用法:

  1. 提取子序列:使用切片可以很容易地提取序列的一个子集。例如,如果你有一个列表my_list = [0, 1, 2, 3, 4, 5],你可以使用my_list[1:4]来提取索引1到3的元素(注意切片是前闭后开的),结果将是[1, 2, 3]。
  2. 步长切片:切片还支持一个可选的第三个参数,即步长。例如,my_list[0:6:2]将会提取索引0到5的元素,但是每隔一个元素取一个,结果将是[0, 2, 4]。
  3. 反转序列:通过将步长设置为负数,你可以轻松地反转一个序列。例如,my_list[::-1]将会返回[5, 4, 3, 2, 1, 0]。
  4. 复制序列:切片也可以用来复制整个序列。例如,my_list_copy = my_list[:]将会创建一个my_list的浅拷贝。
  5. 切片与函数结合:你可以将切片与一些内置函数结合使用,例如len()来获取切片的长度,sum()来求和等。
  6. 字符串操作:对于字符串,切片可以用来提取子字符串。例如,s = "Hello, World!",s[7:12]将会返回"World"。
  7. 多维切片:对于多维数组(如NumPy库中的ndarray),你可以使用多个切片来同时选择多个维度。例如,在二维数组中,arr[1:3, 0:2]将会选择第1和第2行,以及第0和第1列。
  8. 动态切片:切片的长度和步长可以是动态计算的,这使得切片操作非常灵活。例如,my_list[::len(my_list)//2]将会提取每隔一个元素的元素,直到列表的一半。