首页 > 解决方案 > 为什么我的 python 代码中的每一行后面都有空格?

问题描述

所以,我在一个竞争性的编码网站上解决了这个问题,它不接受我的答案,我认为这是因为我的输出在每一行之后都有空间。

我想知道为什么会出现这个空间以及我可以做些什么来更改我的代码(想知道我做错了什么。)这样它就不会留下一条线。

这是问题所在:

文森特先生在一家门垫制造公司工作。有一天,他设计了一种新的门垫,规格如下:

垫子尺寸必须为 NxM。(N 是一个奇数的自然数,M 是 N 的 3 倍。)设计应该在中心写上“WELCOME”。设计模式应该只使用 |, 。和 - 字符。

样品设计:

Size: 7 x 21 
---------.|.---------
------.|..|..|.------
---.|..|..|..|..|.---
-------WELCOME-------
---.|..|..|..|..|.---
------.|..|..|.------
---------.|.---------

输入格式:

包含 N 和 M 的空格分隔值的单行。此外,M 始终是 N 的 3 倍

输出格式:

输出设计模式。

这是我的代码:

data = input().split()
height = int(data[0])
width = int(data[1])

pattern = ''

def methodA(times):
    print("-"*times,end = '')

def methodB(times):
    print(".|."*times, end = '')

inputDecrease = (width - 3)//2
inputIncrease = 1

#upperHalfStarts

for i in range(0, height//2 ):
    methodA(inputDecrease)
    methodB(inputIncrease)
    methodA(inputDecrease)
    print("\n")
    if not i == (height//2-1):
        inputDecrease -= 3
        inputIncrease += 2

#MiddleLineStarts

temp = (width -7)//2

methodA(temp)
print("WELCOME", end = '')
methodA(temp)
print("\n")

#lowerHalfStarts

for i in range(0, height//2):
    methodA(inputDecrease)
    methodB(inputIncrease)
    methodA(inputDecrease)
    print("\n")
    inputDecrease += 3
    inputIncrease -= 2

这是我的输出:

---------.|.---------

------.|..|..|.------

---.|..|..|..|..|.---

-------WELCOME-------

---.|..|..|..|..|.---

------.|..|..|.------

---------.|.---------

预期输出:

---------.|.---------
------.|..|..|.------
---.|..|..|..|..|.---
-------WELCOME-------
---.|..|..|..|..|.---
------.|..|..|.------
---------.|.---------

标签: pythonpython-3.x

解决方案


print()已经在该行的 处包含一个换行符end。执行print("\n")意味着您打印一个显式换行符,加上隐式换行符以结束输出。你有效地运行这个:

print("\n", end="\n")

改用普通print()的,没有明确的换行符。


推荐阅读