from re import split
import sys

# 输入
str1 = list(input())
num1 = len(str1)
if num1 <= 8:
    num2 = 8-num1  #最后一次需要补0的数量
    for i in range(num2):
        str1.append(0)
    print(*str1,sep = '')
else:
    while num1 > 8:
        print(*str1[:8], sep='')  # 输出8个
        str1 = str1[8:]
        num1 -= 8
    num2 = 8-num1  #最后一次需要补0的数量
    for i in range(num2):
        str1.append(0)
    print(*str1,sep = '')

核心知识:*直接输出列表元素,sep''间隔输入

print(*a_list)中, *a_list 什么意思

在 Python 中,* 运算符前面的变量用于将其元素作为独立的位置参数进行解包。这意味着,如果您有一个列表、元组或任何其他可迭代对象,您可以使用 * 运算符将其元素作为函数的独立参数进行传递。

例如,考虑以下代码:

a_list = [1, 2, 3, 4]
print(*a_list)

在这里,* 运算符用于将 a_list 的元素作为独立的参数进行解包,然后将它们传递给 print 函数。此代码的输出将是:

1 2 3 4

在这种情况下,print 函数将列表的每个元素视为单独的参数,而不是单个参数列表。

进一步思考

那么这种可以用来直接输出数字列表?

可以

字符串列表呢

可以,但是是逐行数出

原因:

  • 使用 * 运算符解压缩数字列表时,print 函数的默认行为是在一行上打印数字,用空格分隔。这是因为 print 函数将数字视为单独的参数,而参数之间的默认分隔符是空格。

  • 在这种情况下,* 运算符用于将字符串列表的元素解压缩为单独的参数,然后将其传递给 print 函数。然后,print 函数在单独的行上打印每个字符串。

print 的 sep 和 end 的区别:

sep 在打印连续内容的时候指定分隔符,而 end 指定一行的结束符

例如:

print('apple', 'banana', 'orange', sep=', ')

这将会输出:

apple, banana, orange

这里的 ', ' 是分隔符,用来在打印的每个对象之间添加一个逗号和一个空格。

print('Hello', end=' ')
print('world')

这将输出:

Hello world

在这个例子中,' ' 是 end 参数的值,它指定了在第一个 print() 结束时不要换行,而是添加一个空格,然后继续打印下一个字符串。