首页 > 试题广场 >

字符串分隔

[编程题]字符串分隔
  • 热度指数:1158745 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解

•输入一个字符串,请按长度为8拆分每个输入字符串并进行输出;

•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。

输入描述:

连续输入字符串(每个字符串长度小于等于100)



输出描述:

依次输出所有分割后的长度为8的新字符串

示例1

输入

abc

输出

abc00000
while True:
    s = ()
    if len(s) % 8 == 0:
        print(s)
    else:
        yu_len = len(s) % 8 
        print(s[-yu_len:] + "0" * (8 - yu_len))
各位大佬们帮忙看看有什么问题 为啥pycharm里可以运行 在这里运行通不过
发表于 2022-07-25 23:00:29 回复(0)
不懂为什么在提交的时候最后会输出一行0,调试和本地都没有问题。
import re
while True:
    try:
        inlist=input()
        #inlist=f.readline()
        indata=inlist.strip("\n")
        s=len(indata)
        if s!=0:
            if s<=8 and s>0:
                lis6=indata.ljust(8,'0')
                print(lis6)
            elif s<=0:
                break
            else:
                lis2=re.findall(r".{8}", indata)
                e=s//8 *8
                lis3=indata[e:s]
                lis2.append(lis3.ljust(8,"0"))
                for i in range(len(lis2)):
                    print(lis2[i])
    except:
        break
发表于 2021-07-08 21:04:50 回复(0)
while True:
    try:
        s = input()
#         l = len(s) #s的长度变化的
        while len(s) >= 8 :
            print(s[:8])
            s = s[8:]        
        if len(s) > 0:
            print(s + '0'*(8 - len(s)))
    except:
        break
发表于 2021-07-03 07:42:37 回复(0)
输入一长串也不用怕😆
while True:
    try:
        a=input()
        while len(a)>8:
            print(a[:8])
            a=a[8:]
        if len(a)>0:
            print(a+'0'*(8-len(a)))
    except:
        break

发表于 2021-06-23 16:26:51 回复(1)
Python3 可无限次数输入 我看了前面很多都是只能输入两个 后面的通过不了 
strList = []
while True:
    try:
        strin = input()
        strList.append(strin)
    except:
        break
        
        
def string_pr(string):
    if len(string) <= 8:
        print(string + "0" * (8 - len(string)))
    else:
        while len(string) > 8:
            print(string[:8])
            string = string[8:]
        print(string + "0" * (8 - len(string)))

for i in strList:
    string_pr(i)

发表于 2021-06-11 16:35:28 回复(2)
python3解法,连续多个输入,困了我好久!!! 
def eight(i):
    while len(i)%8!=0:
        i = i + '0'
    scale = int(len(i)/8)
    for j in range(scale):
        print (i[j*8:j*8+8])
while True:
    try:
        a=input()
        eight(a)
    except:
        break
发表于 2021-06-08 17:41:13 回复(0)
def cut(string):
    part = len(str(string)) // 8
    word_list = []
    if len(string)%8 == 0:
        for i in range(part):
            word_list.append(string[i*8: (i+1)*8])
    else:
        for i in range(part):
            word_list.append(string[i*8: (i+1)*8])
        word_list.append(string[part*8: ])
        word_list[part] = word_list[part].ljust(8, '0')
    return word_list
        

while True:
    try:
        word = input()
        if len(word) < 8:
            print(word.ljust(8, '0'))
        else:
            for i in range(len(cut(word))):
                print(cut(word)[i])
    except:
        break
        
python3 将输入数据判断有多少个以8为单位的字符串,然后进行分割输出,可用于任何长度的字符串
发表于 2021-05-29 17:31:23 回复(0)
while True:
    try:
        a = str(input())
        b = len(a)//8
        c = len(a)%8
        if b == 0:
            print(a+(8-len(a))*'0')
        else:
            for i in range(b):
                print(a[i*8:(i+1)*8])
            if c != 0:
                print(a[-c:]+(8-c)*'0')
    except:
        break
发表于 2021-05-14 20:52:54 回复(0)
while True:
    try:
        a=input()
        if len(a)%8!=0:
            tk=len(a)//8
            ky=len(a)-(tk*8)
            hy=8-int(ky)
            for i in range(hy):
                a=a+'0'
        for i in range(len(a)//8):
            print(a[i*8:i*8+8])
    except:
        break
发表于 2021-05-13 22:30:17 回复(0)
while True:
    try:
        s = input()
        while len(s)>8:
            print(s[0:8])
            s = s[8:]
        else:
            print (s+'0'*(8-len(s)))
    except:
        break
发表于 2021-05-12 18:21:30 回复(0)
while True:
    try:
        s = input()
        n = len(s)
        count = n // 8 + 1
        for i in range(count):
            top = (i + 1) * 8
            if top > n:
                zero = top - n
                top = n
            else:
                zero = 0
            if i * 8 < top:
                res = s[i * 8: top]
                res += '0'*zero
                print(res)
    except:
        break
发表于 2021-05-06 15:28:32 回复(0)
import sys

for line in sys.stdin:
    line = line.strip()
    # 字符串长度超过8时,从第8位开始截取,直到新字符串长度小于等于8
    while len(line) > 8:
        print(line[:8])
        line = line[8:]
    # 方法1 左对齐,位数不足后面补0
#     print(line.ljust(8,'0'))
    # 方法2 格式化输出,长度不足8,后面补0
    print("{:0<8}".format(line))
# 方法2:
import sys

def func(s):
    while len(s)>8:
        print(s[:8])
        s = s[8:]
    if s:
        print(s.ljust(8,'0'))

for line in sys.stdin:
    func(line.strip())


编辑于 2021-06-02 15:03:43 回复(0)

while True:
    try:
        v = input()
        while len(v)>8:
            print(v[:8])
            v = v[8:]
        else:
            print(v.ljust(8, '0'))
    except:
        break

python3代码
不加try except 就通不过 显示报错,实际自己在本地运行的时候是可以的,不知道因为点啥,谁能解答一下
发表于 2021-04-18 13:10:57 回复(0)
while True:
    try:
        gl_str = input("")  
        list = []  # 定义一个空列表用于存放字符串拆分后的数据
        if len(gl_str) <= 0 or len(gl_str) > 100:  # 判断字符串长度,小于等于0或者大于100则重新输入
            continue
        elif 0 < len(gl_str) <= 8:
            print(gl_str + "0" * (8 -len(gl_str)))  # 字符串长度小于或者等于8,则全部输入,或者补0
        else:
            a = int(len(gl_str) / 8)  # 字符串长度除以8取整数用于后续循环的次数
            b = len(gl_str) % 8  # 字符串长度取余用于补0
            if b == 0:  # 判断字符串长度是否正好是8的倍数,如果是,则拆分后,直接输出

                for i in range(a):
                    list.append(gl_str[8 * i:8 * i + 8])
            else:  # 字符串长度除以8有余数,则将正好是8的倍数的直接拆分后存入列表
                for i in range(a):
                    list.append(gl_str[8 * i:8 * i + 8])
                gl_str1 = gl_str[-b:-1] + gl_str[-1] + "0" * (8 - b)
                # 上面步骤则是将余下的数据输出并补0,存入列表中
                list.append(gl_str1)
            for result in list:
                print(result)
    except:
        break
发表于 2021-04-18 00:36:44 回复(0)
import math
while True:
    try:
        str = input()
        if len(str)==0: break
        Len = math.ceil(len(str)/8)
        str = str.ljust(Len*8,'0')
        for i in range(Len):print(str[i*8:(i+1)*8])
    except:
        break
发表于 2021-04-12 16:45:45 回复(0)
while True:
    try:
        a = input()
        while len(a)>8:
            print(a[0:8])
            a = a[8:]
        print('{:0<8}'.format (a))
    except:
        break
发表于 2021-04-11 11:49:07 回复(0)
while True:
    try:
        a=input()
        if len(a)%8!=0:
            for i in range(len(a)//8+1):
                print('{:0<8}'.format(a[i*8:(i+1)*8]))
        else:
            for i in range(len(a)//8):
                print('{:0<8}'.format(a[i*8:(i+1)*8]))
           
    except:
        break
#我真的弟弟。。。
发表于 2021-04-06 19:36:21 回复(0)
def bzf0(str):
    a=len(str)
    b=a//8
    for i in range(b):
        kk=str[i*8:i*8 +8]
        print(kk)

def bzf(str):
    a=len(str)
    b=a//8
    if b*8==a:
        bzf0(str)
    else:
        bu=(b+1)*8-a
        c='0'
        for i in range(bu):
            str=str+c
        str_new=str
        bzf0(str_new)


while True:
    try:
        a=input()
        bzf(a)
    except:
        break
发表于 2021-03-31 01:11:00 回复(0)
while True:  try:
        pk = input()  for i in range(0,len(pk),8):
            last_index = i + 8    print(pk[i:last_index].ljust(8,"0")) except: break

发表于 2021-03-30 22:36:08 回复(0)