我无法克服这个小问题。
第二个是对的。
如何打印没有空格?
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 2 中使用 Python 3print()
函数并要求它不要打印换行符:
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)])
您可以尝试使用sys.stdout.write("+")
代替print "+"
吗?
在python 3中,您可以覆盖打印行为,这将解决您的问题:
print("+", end="")