Программа Python, которую я отлаживаю, имеет следующий код (включая print
операторы для отладки):
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 на компьютере с Ubuntu Jaunty.)