gpt4 book ai didi

python - 运行相同的循环两次,但得到不同的结果

转载 作者:太空宇宙 更新时间:2023-11-04 06:50:02 24 4
gpt4 key购买 nike

我想不通,但假设我有一个深度为 3 的字符串数组,称为“文本”。

怎么会是下面的代码:

print "FIRST"
for gate in text[1:]:
print "GATE"
for text in gate:
print "TEXT"
for entry in text:
print "ENTRY"
print what

print "SECOND"

for gate in text[1:]:
print "GATE"
for text in gate:
print "TEXT"
for entry in text:
print "ENTRY"
print what

每个循环我得到不同的输出。

“第一”

FIRST
GATE
TEXT
ENTRY
א

ENTRY
מחברת אל"ף

ENTRY
אחל לבאר לשון יהודית, להעמיד כל מלה כפי שאת, יש מלה רבת פנים ולא יתבונן המשכיל יסודותיה, כי אם במהות ענינה אשר סביבותיה למרבית פניה, כי המלה מושכת והולכת עד אשר מתחלקת ממראה אחד עד חמשה עשר פנים, על כן יש מלה אשר הענין ימשכנה ויורה עליה וילמד על גזרתה. ויש מלה אשר היא מושכת הענין ומבארת הפתרון ושכל סודו, וכה הוא פתרון הלשון ופשר המלים לפי מחלקותיהם ותוצאותיהם.

TEXT
ENTRY
אב.

“第二”

SECOND
GATE
TEXT
ENTRY
מ
TEXT
ENTRY
ת
TEXT
ENTRY
ח
TEXT
ENTRY
ל
TEXT
ENTRY

每个循环的编码完全相同,但我得到不同的输出。这怎么可能?

最佳答案

for 循环“泄漏”变量。您可能希望将 gatetextentry 限定在它们各自的循环中,但它们实际上是全局的。所以,在这个循环的最后

for text in gate:

text 的值已被更改,这会影响下一个循环。

这是一个更简单的例子:

x = 'abc'   

for x in x:
print x,
# output: "a b c"

for x in x:
print x,
# output: "c"

(如果能够运行相同的代码两次并获得相同的结果是您认为有值(value)的事情,那么 Python 可能不是您的正确语言选择。有很多 lovely 语言可以做到有这个属性。)

关于python - 运行相同的循环两次,但得到不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39441896/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com