一個Python程序,我調試具有下面的代碼(包括print
報表調試):Python:爲什麼變量沒有更新?
print "BEFORE..."
print "oup[\"0\"] = " + str(oup["0"])
print "oup[\"2008\"] = " + str(oup["2008"])
print "oup[\"2009\"] = " + str(oup["2009"])
oup0 = oup["0"]
oup2008 = oup["2008"]
oup2009 = oup["2009"]
ouptotal = oup2008 + oup2009
print "ouptotal = " + str(ouptotal)
if ouptotal > 0:
oup["2008"] = oup2008 + oup0 * (oup2008/ouptotal)
oup["2009"] = oup2009 + oup0 * (oup2009/ouptotal)
print "AFTER..."
print "oup[\"0\"] = " + str(oup["0"])
print "oup[\"2008\"] = " + str(oup["2008"])
print "oup[\"2009\"] = " + str(oup["2009"])
,直到這一點,變量更新正確。當我運行的代碼,我得到的屏幕上顯示如下:
BEFORE...
oup["0"] = 22032
oup["2008"] = 541
oup["2009"] = 15223
ouptotal = 15764
AFTER...
oup["0"] = 22032
oup["2008"] = 541
oup["2009"] = 15223
爲什麼不OUP [ 「2008」]和OUP [ 「2009」]更新?
(Python版本是2.6.2一個「Jaunty的」 Ubuntu的機器上。)
從有意*學習Python的人的角度來看,有一天,'oup [2008]'與'oup [「2008」]'一樣嗎? – pavium 2010-01-06 02:18:37
編號int索引和str索引是不同的。 – 2010-01-06 02:20:08
我刪除了打印的「oup [2008]」,因爲它可能令人困惑。 – 2010-01-06 02:21:44