глобальное имя 'getYearlyCost2' не определено - PullRequest
0 голосов
/ 24 февраля 2012

Я впервые использую python, и я застрял в этой вонючей проблеме и не могу на всю жизнь понять, почему она не работает. Когда я пытаюсь запустить свою программу, я могу получить ответ на годовую стоимость без изменений (даже если это неправильно, и я не знаю почему), но не на годовую стоимость с модификацией.

Я пытался переписать его на случай, если пропустил двоеточие / скобки / т. Д., Но это не сработало, я попытался переименовать его. И я попытался полностью его убрать (это единственный способ избавиться от этого надоедливого сообщения об ошибке)

файл выплат

from mpg import *

def main():
    driven,costg,costm,mpgbm,mpgam = getInfo(1,2,3,4,5)
    print("The number of miles driven in a year is",driven)
    print("The cost of gas is",costg)
    print("The cost of the modification is",costm)
    print("The MPG of the car before the modification is",mpgbm)
    print("The MPG of the car afrer the modification is",mpgam)

costWithout = getYearlyCost(1,2)
print("Yearly cost without the modification:", costWithout)

costWith = getYearlyCost2()
print("Yearly cost with the modification:", costWith)

Хотя я знаю, что в этом есть ошибка (скорее всего, много ошибок), я ее не вижу. Может ли кто-нибудь указать мне на это и помочь мне исправить это?

Также я добавил свой mpg.py на тот случай, если там есть ошибка, а не файл выплат.

def getInfo(driven,costg,costm,mpgbm,mpgam):
    driven = eval(input("enter number of miles driven per year: "))
    costg = eval(input("enter cost of a gallon of gas: "))
    costm = eval(input("enter the cost of modification: "))
    mpgbm = eval(input("eneter MPG of the car before the modification: "))
    mpgam = eval(input("enter MPG of the car after the modification: "))
    return driven,costg,costm,mpgbm,mpgam

def getYearlyCost(driven,costg):
    getYearlyCost = (driven / costg*12)
def getYealyCost2(driven,costm):
    getYearlyCost2 = (driven / costm*12)
    return getYearlyCost,getYearlyCost2

def gallons(x,y,z,x2,y2,z2):
    x = (driven/mpgbm)     # x= how many gallons are used in a year
    y = costg
    z = (x*y)               # z = how much money is spent on gas in year
    print("money spent on gas in year ",z)

    x2 = (driven/mpgam)     # x2 = how much money is spent with mod.
    z2 = (x2*y)
    y2 = (costm + z2)
                                                          1,1           Top

1 Ответ

4 голосов
/ 24 февраля 2012

Вот ваша непосредственная проблема:

costWith = getYearlyCost2()

Функция, которую вы пытаетесь вызвать, называется getYealyCost2() (без "r").

Есть другие проблемы, которые вы 'Как только вы это исправите, вы найдете, например, оператор return в getYearlyCost() и попытку вернуть функцию getYearlyCost() в getYearlyCost2() и вызов getYearlyCost2() без каких-либо аргументов.

Наверхиз-за этого import * осуждается, а затем используется eval() ... но это подойдет для начинающих.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...