我想在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列时,我的输出应该是这样的
**********
**********
**********
**********
**********
答案 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。