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