【问题标题】:Del variable inside a Loop循环内的 Del 变量
【发布时间】:2017-05-14 21:43:09
【问题描述】:

我对 python 和编程非常陌生。我现在正在学习循环,并尝试了以下代码来看看会发生什么。我想知道的是为什么下面的代码不会崩溃或不断重复“罗伯特”。

谢谢。

name = ["Robert", "Mike", "Garry", "Alex"]
for y in name:
    print(y)
    del y

print("END")

【问题讨论】:

  • 所以你问它为什么有效?
  • for 循环遍历name 变量中的值。第一次将变量y 设置为“Robert”。下一次它将y 设置为“Mike”。下一次它将y 设置为“Garry”。等等……

标签: python python-3.x for-loop del


【解决方案1】:

for 循环的每次迭代都会创建一个“新”y。通过每次删除此y,您只是删除了属于该迭代的y。它在下一次迭代开始时再次“重新创建”。

del 根本不会改变这段代码的结果。

【讨论】:

  • Python 没有块作用域。
  • 如果在每一轮循环中重置 y 变量,计算机/程序如何记住它已经完成了之前的项目? python中是否有一些隐藏变量正在跟踪或其他什么?
  • 是的。它要么使用内部索引,要么使用迭代器协议。在这种情况下,它是一个列表,因此它使用索引。
【解决方案2】:

代码有效,因为在您删除名称 y 后,您会在循环的下一次迭代中再次创建它。

如果您尝试在循环后打印y,您会发现它无法与del 中的语句一起使用。

【讨论】:

    猜你喜欢
    • 2017-08-27
    • 1970-01-01
    • 2021-09-10
    • 2011-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多