-->
当前位置:首页 > 题库 > 正文内容

程序填空题:矩阵迷踪 - 实验6 名字绑定 - 《Python编程基础及应用实验教程》(高等教育出版社)

Luz2年前 (2022-06-27)题库1078
请录入并执行下述程序:

python
m = [[0]*4]*3
m[1][1] = 99
for r in m:
print(r)


上述程序的执行结果是:

[0, 99, 0, 0]
[0, 99, 0, 0]
[0, 99, 0, 0]


程序的第1行通过列表运算语法生成了三行四列的矩阵m,其元素值全部为0;程序第2行则将矩阵的第1行第1列(从0开始计数)修改为99。但程序的执行结果告诉我们,m[0][1]及m[2][1]也被修改为99了,这显然与预期不符。请结合名字绑定及列表的相关理论,对上述现象做出解释。<br>

提示:请在程序最后添加一行:print(id(m[0]),id(m[1]),id(m[2])),执行并观察结果。
<br><br>

通过列表推导算法可以避免上述问题,请使用列表推导语法完成下述程序填空。使得程序的输出与期望相符。

python
m = [[0 for ] for ]
m[1][1] = 99
for r in m:
print(r)


期望的程序输出:

[0, 0, 0, 0]
[0, 99, 0, 0]
[0, 0, 0, 0]


<br>
解题思路: 请参考《Python编程基础及应用实验教程》。
<br> 该书是高等教育出版社《Python编程基础及应用》教材的配套实验指导书。

<br>**拼尽全力还是不会?参考B站习题讲解**<br>哔哩哔哩up主:[海洋饼干叔叔](https://space.bilibili.com/384177380) [Python课程](https://www.bilibili.com/video/BV1kt411R7uW/) [Python习题](https://www.bilibili.com/video/BV1iL411t7UZ/)[简洁的C和C++](https://www.bilibili.com/video/BV1it411d7zx/)作者每天分享一篇关于C/C++/Python的技术文章,学习编程不迷路。![image.png](~/7c4cfd2d-8e3e-40cd-826d-299d4200e600.png)







答案:
第1空:c in range(4)

第2空:r in range(3)

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。