描述
•连续输入字符串,请按长度为8拆分每个输入字符串并进行输出;
•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。
(注:本题有多组输入)
输入描述:
连续输入字符串(输入多次,每个字符串长度小于等于100)
输出描述:
依次输出所有分割后的长度为8的新字符串
输入:
abc
123456789
输出:
abc00000
12345678
90000000
解题思路
- 将输入数据添加到列表中,使用异常EOFEorr保证程序可多次输入,并可以正常结束循环
- 循环遍历列表,判断输入的元素长度
- 获取元素长度
l
以及l % 8
的余数x
四种情况:
l
大于8且x
不为0
l
大于8且x
为0
l
等于8
l
小于8
data_list = []
while True:
try:
data_list.append(input())
except (EOFError, KeyboardInterrupt):
break
for ele in data_list:
l = len(ele)
x = l % 8
if l > 8 and x != 0:
#raw = l // 8 + 1
for i in range(0, l, 8):
pf = ele[i:i+8]
if len(pf) == 8:
print(pf)
if len(pf) < 8:
print(pf.ljust(8, '0'))
elif l < 8 and x != 0:
print(ele.ljust(8, '0'))
elif l == 8:
print(ele)
elif l > 8 and x == 0:
for i in range(0, l, 8):
print(ele[i:i+8])
个人思路,如果有更好的方法欢迎评论在下方。