我看到同样的问题,但我想知道我为什么尝试不起作用。这是来自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,那么输出语句是否应该等于我想要的输出?
答案 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 ''