在python中使用嵌套for循环来打印矩形

时间:2017-10-21 14:47:55

标签: python

我看到同样的问题,但我想知道我为什么尝试不起作用。这是来自Zybook挑战问题。

以下是练习:

编写嵌套循环以打印矩形。给定程序的示例输出:

* * *  
* * *

这是我建立的代码:

num_rows = 2
num_cols = 3

for num_rows in range(0,num_rows):
    for num_cols in range(0,num_cols):
        print('*', end=' ')
    print('')

输出结果为:

* * *
* * 

问题:为什么嵌套的for循环打印语句第三次迭代?当我将嵌套循环设置为:

for num_cols in range(0,3):  

我收到了我想要的3x2星号矩形输出。如果num_cols变量声明为3,那么输出语句是否应该等于我想要的输出?

2 个答案:

答案 0 :(得分:0)

您正在使用它作为循环变量以及列数值来覆盖num_cols变量。它在外循环的第一次迭代结束时设置为2。您可以用num_col替换它。同样适用于num_rows

答案 1 :(得分:0)

跟随@Karthik推断你的代码错误的原因,这是一个misc的解决方案。改进:

num_rows = 2
num_cols = 3

for _ in xrange(num_rows):       # xrange for efficient iteration
    for _ in xrange(num_cols):   # no need to unpack iteration variable
        print '*',               # for Python 2, but use the function syntax for 3+
    print ''