我无法克服这个小问题。

第二个是对的。
如何打印没有空格?
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="")