我如何在没有新行结尾的情况下结束此代码?

时间:2019-09-28 14:03:38

标签: python python-3.x

我现在正在经历HackerRank挑战,在这个特殊的练习中,我需要打印多行,除了最后,代码将打印出我不希望的新的空白行,因为它是导致网站认为整个输出错误。有没有一种方法可以使仅我要打印的最后一行不会打印新的一行? 这是我正在谈论的代码:

BookingService

还有link来挑战。

谢谢。

2 个答案:

答案 0 :(得分:0)

您可以构造字符串并一次打印所有字符串,而不必分别打印每行(这样可以删除最后一个新行字符):

def main(w, h):
    p = '.|.'
    c = 0
    s = ''
    for i in range(h // 2):   #   a // b is the same as int(a / b)
        s += (p*(i*2+1)).center(w, '-') + '\n'
    c = (h // 2 - 1) * 2 + 1   #   only this value is used
    s += 'Welcome'.center(w, '-') + '\n'
    for i in range(h // 2):
        s += ((p*(c-i*2)).center(w, '-')) + '\n'
    s = s[:-1]
    print(s, end='')

答案 1 :(得分:0)

只需修改最后一个循环。

实际上,您可以告诉python不要在打印中写回车符

h, w = input().split(' ')
h = int(h)
w= int(w)
def main(w, h):
    p = '.|.'
    c = 0
    for i in range(int(float(h)/2)):
        print((p*(i*2+1)).center(w, '-'))
        c = i*2+1
    print('Welcome'.center(w, '-'))
    for i in range(int(float(h)/2) - 1):
        print(((p*(c-i*2)).center(w, '-')))
    print(((p*(c-i*2)).center(w, '-')), end='')
main(w, h)