我無法克服這個小問題。Python - spaces
第二個是正確的。
我怎樣才能打印沒有空格?
def square(n):
for i in range(n):
for j in range(n):
if i==0 or j==0 or i==n-1 or j==n-1: print "*",
else: print "+",
print
感謝您的幫助!
我無法克服這個小問題。Python - spaces
第二個是正確的。
我怎樣才能打印沒有空格?
def square(n):
for i in range(n):
for j in range(n):
if i==0 or j==0 or i==n-1 or j==n-1: print "*",
else: print "+",
print
感謝您的幫助!
通過不使用print
加逗號;在這種情況下,逗號將插入空格而不是換行符。
使用sys.stdout.write()
獲得更多的控制權:
import sys
def square(n):
for i in range(n):
for j in range(n):
if i==0 or j==0 or i==n-1 or j==n-1: sys.stdout.write("*")
else: sys.stdout.write("+")
print
print
只是寫入sys.stdout
你,雖然它也能處理多個參數,將值轉換爲字符串第一,除非你結束與表達增加了一個新行逗號。
你也可以使用Python 3 print()
function在Python 2,並要求它不打印換行符:
from __future__ import print_function
def square(n):
for i in range(n):
for j in range(n):
if i==0 or j==0 or i==n-1 or j==n-1: print("*", end='')
else: print("+", end='')
print()
或者,''.join()
先加入字符串:
def square(n):
for i in range(n):
print ''.join(['*' if i in (0, n-1) or j in (0, n-1) else '+' for j in xrange(n)])
謝謝,這工作! – piratteegon
我們可以在Join中刪除''''''並添加'('''''用於Python 3的打印函數調用... ... –
@GrijeshChauhan:請參閱http://stackoverflow.com/a/9061024;對於'''.join()'來說,它更快*是使用列表理解而不是生成器表達式。 –
你可以嘗試要使用sys.stdout.write("+")
而不是print "+"
?
我會在打印前在建全行作爲字符串。或者使用Python 3,您可以在其中將「結束」設置爲「'」。 –