Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中使用嵌套for循环打印矩形_Python - Fatal编程技术网

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

在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('') 输出为: *

我看到有人问我同样的问题,但我想知道为什么我的尝试不起作用。这是来自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,那么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列