Python 局部变量范围



我即将举行期末考试,这是我唯一无法正确回答的问题:

问题4

word = 'off'
prev = ""
for letter in word:
if prev == "";
prev = letter
out = ""
continue
elif letter == prev:
prev = letter
out = letter
break
else:
prev = letter
out = word[0]
print(out)

a( o
b( f
c( of
d( " (空字符串(e(
以上都不是

当我试图解决它时,我认为答案将是"以上都不是",因为out是在局部变量范围内定义的,并且不再存在于if语句的每个部分之外。当我在编译器中运行代码来检查我的答案时,我发现正确答案是 b。有人可以解释为什么局部变量范围允许这个答案是正确的吗?提前谢谢你。

由于变量不是在函数或类中声明的,因此它是在全局范围内声明的。

您可以在此处阅读有关它的更多信息:

  • https://www.programiz.com/python-programming/global-local-nonlocal-variables
  • https://docs.python.org/3/faq/programming.html#what-are-the-rules-for-local-and-global-variables-in-python
  • https://www.geeksforgeeks.org/global-local-variables-python/

最新更新