0

我无法克服这个小问题。

在此处输入图像描述

第二个是对的。

如何打印没有空格?

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

感谢帮助!

4

3 回答 3

10

通过不使用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)])
于 2013-10-29T13:09:12.963 回答
2

您可以尝试使用sys.stdout.write("+")代替print "+"吗?

于 2013-10-29T13:11:31.243 回答
0

python 3中,您可以覆盖打印行为,将解决您的问题:

print("+", end="")
于 2013-10-29T13:16:26.137 回答