Python 值是否需要初始化才能在for循环中运行? 我正在学习C++,教授希望我们了解我们所学的东西在其他语言中的作用。

Python 值是否需要初始化才能在for循环中运行? 我正在学习C++,教授希望我们了解我们所学的东西在其他语言中的作用。,python,scope,variable-declaration,Python,Scope,Variable Declaration,下面的python代码会打印出来吗 “我爱我的狗…”(针对每个阵列实例) 和 “我最喜欢的狗是杰克” 还是仅仅是后者 pets = ['flufffy', "jack", 'larry'] for a in pets: print "I love my dog %s" % a print "My favourite dog is %s" % pets[1] 在C++中,如果未声明 < < /> >,如果MI正确,循环将不正确编译/运行。 在Python中,赋值包含隐式声明(只是声明仅表

下面的python代码会打印出来吗 “我爱我的狗…”(针对每个阵列实例) 和 “我最喜欢的狗是杰克” 还是仅仅是后者

pets = ['flufffy', "jack", 'larry']
for a in pets:
    print "I love my dog %s" % a
print "My favourite dog is %s" % pets[1]

在C++中,如果未声明<代码> < < /> >,如果MI正确,循环将不正确编译/运行。

在Python中,赋值包含隐式声明(只是声明仅表示“名称存在”,并且不强制静态类型)。< / P> 工作正常(因此,您期望的所有行都被打印出来,循环不会因为您期望的任何原因而被跳过),因为
for
循环指定给
a
,并隐式声明它。它不像C++那样需要一个声明,比如<代码> STD::String A < /C> >(或在循环之前或在循环中)或“代码> Auto A/Cuth>(在循环中),声明<代码> < < /C> >已知类型。


要清楚,C++只需要声明<代码> < /C> >(并且可以在循环本身中完成,例如<代码> >(const Auto&A:PETS){< /C> >),而不是专门初始化,以使循环工作。

您是否尝试执行它并查看发生了什么情况?目前它将出错,因为未定义
结果。
。此代码是否还有其他内容?什么是
f
?它不会出现在代码中。此外,您的最后一行在两个地方使用
&
,这两个地方您几乎可以肯定是指
%
。我不熟悉如何在Derlin执行python代码
for a in pets: