Ericjohnn
2019-03-15 17:28
采纳率: 33.3%
浏览 515

Python一道关于字符分割的题目

图片说明
这是代码:
def printStr(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)))
a = int(input())
for i in range(a):
s = input()
printStr(s)

这是一道Python的关于字符串分割的问题,为什么输入数字为40时就不行了呢?麻烦大佬们帮忙看看代码写的哪出问题了
这是报错内容:
答案错误:您提交的程序没有通过所有的测试用例
case通过率为0.00%

用例:
40

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • nituxiaocao 2019-03-15 17:59

    打印的逻辑有点怪,可以这样调整,上传的代码块建议注意缩进,否则不太容易判断逻辑走向

    def printStr(string):
        while len(string) > 8:
            print(string[:8])
            string = string[8:]
    
        print(string + "0" * (8 - len(string)))
    
    a = int(input('输入测试次数:'))
    for i in range(a):
        s = input('第%r次'%(i+1))
        printStr(s)
    

    运行结果:图片说明
    如果有帮到你,记得点赞,你的点赞是我答题的动力哦

    打赏 评论
  • nineships 2019-03-15 18:09

    def printStr(string):
    if len(string) == 0:
    return
    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 range(2):
    s = input()
    printStr(s)
    #这个代码试试

    打赏 评论
  • Ericjohnn 2019-03-15 19:48

    def printStr(string):
    if len(string) == 0:
    return
    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)))
    a = int(input())
    for i in range(a):
    s = input()
    printStr(s)

    
    
    打赏 评论

相关推荐 更多相似问题