在python中使用嵌套for循环打印矩形
我看到有人问我同样的问题,但我想知道为什么我的尝试不起作用。这是来自Zybook挑战题 以下是练习: 编写嵌套循环以打印矩形。给定程序的示例输出:在python中使用嵌套for循环打印矩形,python,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('') 输出为: *
* * *
* * *
这是我构建的代码:
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,那么output语句不应该等于我想要的输出吗 将num_cols变量用作循环变量以及列数值,从而覆盖该变量。在外循环的第一次迭代结束时,它被设置为2。您可以将其替换为num_col。num_rows也适用于num_行根据@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 ''
因为前面定义的变量和
for
循环中使用的变量使用相同的标识符num_rows
和num_cols
。将最新的行重命名为row
和col
,而不是num\u rows
和num\u cols
。谢谢。我在翻阅我的书,但我没有意识到这是我犯的错误。基本上,你是在覆盖循环中原始的num\u行
和num\u列
。