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() 结束时不要换行,而是添加一个空格,然后继续打印下一个字符串。