在Python 2.7中创建矩形星号

时间:2015-12-10 02:13:48

标签: python python-2.7

我想在Python(2.7)中创建一个矩形图案。但是,print语句中的end =选项会给出错误。

rows =int(input("How many rows? ")
cols = int(input("How many columns? ")

for r in range(rows):
    for c in range(cols):
        print("*", end="")
    print()

输入5行10列时,我的输出应该是这样的

**********
**********
**********
**********
**********

3 个答案:

答案 0 :(得分:4)

如果end=''发出错误,那么你就是Python 2;要使用Py3打印功能,您需要将以下内容添加到程序/模块的顶部(如果您以交互方式运行此代码,则在解释器中运行它):

from __future__ import print_function

附注:Python允许您将字符串相乘,因此您可以更轻松地执行此操作:

for r in range(rows):
    print('*' * cols)

答案 1 :(得分:2)

您的问题是print("*",end="")适用于Python 3.在Python 2中,您应该在print("*")后使用逗号在同一行上打印

编辑:感谢@ShadowRanger,同时请注意,在Python 2中,括号也是可选的):

rows = int(input("How many rows? "))
cols = int(input("How many columns? "))

for r in range(rows):
    for c in range(cols):
        print("*"),
    print("")

有关在同一行上打印的详细信息,请参阅:Print in one line dynamically

答案 2 :(得分:2)

首先,在“int(输入(”多少行?“)”和“int(输入(”多少列?“)”之后需要一个额外的右括号。第二,如果你不想要依靠提到的其他方法,试试这个:

rows =int(input("How many rows? "))
cols = int(input("How many columns? "))
cnt = 0
for r in range(rows):
    for c in range(cols):
        cnt += 1
    strToPrint = "*" * cnt
    cnt = 0
    print(strToPrint)

这适用于两个版本的Python。