簡體   English   中英

為什么我的 python 代碼中的每一行后面都有空格?

[英]Why am I getting spaces after every line in my python code?

所以,我在一個競爭激烈的編碼網站上解決了這個問題,但它不接受我的答案,我認為這是因為我的輸出在每一行之后都留出了空間。

我想知道為什么會出現這個空間以及我可以做些什么來更改我的代碼(想知道我做錯了什么。)以便它不會留下一行。

這是問題所在:

文森特先生在一家門墊制造公司工作。 一天,他設計了一種新的門墊,規格如下:

墊子尺寸必須是 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-------
---.|..|..|..|..|.---
------.|..|..|.------
---------.|.---------

print()已經在行end包含了一個換行符。 執行print("\\n")意味着您打印顯式換行符,加上隱式換行符以結束輸出。 你有效地運行這個:

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

使用普通的print()代替,沒有顯式的換行符。

    # Enter your code here. Read input from STDIN. Print output to STDOUT
lstr = '.|.'
varbl=input().split()
midString = 'WELCOME'
breakpt = (int(varbl[0])-2)//2

for i in range(int(varbl[0])):

    print((lstr*((2*i)+1)).center(int(varbl[1]),'-'))
    if i == breakpt:
        print(midString.center(int(varbl[1]),'-'))
        break 
       
i = int(varbl[0])//2          
while i > 0:
    pattern = lstr * ((2 * i) - 1) 
    print (pattern.center (int(varbl[1]), '-')) 
    i = i-1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM