Возьмите MaxGross
из for-loop
:
def MaxGrossFinder(c):
MaxGross = 0
for film in year:
f = int(gross[film])
if year[film] == c:
if f > MaxGross:
MaxGross = f
return MaxGross
С MaxGross = 0
внутри цикла for все предыдущие итерации ничего не значат.Только последнее повлияет на MaxGross
.Это, вероятно, не намерение.
Другая проблема может возникнуть, если c
и year[film]
являются числами с плавающей точкой.Не сравнивайте числа с плавающей точкой на равенство (если вы не знаете, что делаете), так как числа могут иметь неточные представления.Вместо этого определите некоторое понятие близости:
def near(a,b,rtol=1e-5,atol=1e-8):
return abs(a-b)<(atol+rtol*abs(b))
и сравните if near(year[film],c)
.