python - 我如何在没有新行的情况下结束这段代码?
问题描述
我目前正在经历 HackerRank 挑战,在这个特定的练习中,我需要打印多行,除了代码最后打印出一个我不想要的新的空白行,因为它导致了网站考虑整个输出错误。有没有办法可以做到只有我想打印的最后一行不会打印新行?这是我正在谈论的代码:
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)):
print(((p*(c-i*2)).center(w, '-')))
main(w, h)
以及挑战的链接。
提前致谢。
解决方案
您可以构造字符串并一次打印所有内容,而不是单独打印每一行(这样您可以删除最后一个换行符):
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='')
推荐阅读
- javascript - getTheme() 本机基础类型
- python - sys.stdout 只创建一个空文件
- mysql - 如何将 Docker MySQL 映像连接到现有的 Rails 应用程序?
- sql - Crystal 报表 SQL 表达式从 DateTime 列中提取年份
- python - 如何根据布尔索引对列表进行切片
- javascript - 为什么这个排序函数以错误的顺序返回对象?
- python-3.x - 有没有办法知道何时单击 tkinter ComboBox 选项?
- flutter - Flutter Container 在行的顶部
- html - 我想让我的文本在 CSS 中响应,但我遇到了问题
- gcc - 无法打开源文件“begin_code.h”(“SDL2/SDL.h”的依赖项)