def ind():
galos = eval(input("What was the starting integer??\n"))
galoe = eval(input("What was the ending integer?\n"))
use = galoe - galos
round(use,1)
if (use < 4000000):
fin = 1000
elif (use > 4000000) and (use < 10000000):
fin = 2000.00
else:
use1 = use - 10000000
start = 2000.00
fin = str(start + (0.00025 * use))
print ("Your bill is:$" + fin)
def bill(code):
print("Code:" + code)
print("Beggining reading:" + galos)
print("Ending reading:" + galoe)
print("Gallons used:" + use)
print("Money owed:$" + fin)
I am writing a basic code that creates a "water bill." I am trying to use galos in bill(), but I keep getting this error:
NameError: name 'galos' is not defined
How can I get that information?
4 Réponses :
Utilisez les globaux globaux (je ne recommande pas que) Je vous recommande de regarder les classes p> p>
Il y a deux raisons d'écrire une fonction. On consiste à effectuer une action (exemple Vous dites que vous ne voulez pas utiliser à la fin de votre fonction appel et utilisez ces valeurs retournées dans votre vous pouvez utiliser des variables globales pour cela, ce qui fonctionnera dans un programme de jouets, mais là-bas sont de bonnes raisons de ne pas avoir à moins qu'il n'y ait pas d'alternative. P> p> impression () code>) et l'autre consiste à calculer les valeurs et à les renvoyer. retour code> mais dans une fonction qui ne veut pas utiliser retour code> n'a pas beaucoup de sens. p> ind () code>, ajoutez p> ind () code> comme ceci: p> impression () code> appels. p>
Vous pouvez utiliser une classe simple en tant que conteneur pour vos données: exécutant ceci sera sortie ceci: p> What was the starting integer??
123
What was the ending integer?
1235
Code: 5234
Beggining reading: 123
Ending reading: 1235
Gallons used: 1112
Money owed:$ 1000
Au fur et à mesure que d'autres réponses ont déclaré ci-dessus, les variables globales sont votre ticket d'or ici. Voici une façon que vous puissiez implémenter ces éléments suivants:
def ind():
global galos, galoe, use, fin
galos = eval(input("What was the starting integer??\n"))
galoe = eval(input("What was the ending integer?\n"))
use = galoe - galos
round(use,1)
if (use < 4000000):
fin = 1000
elif (use > 4000000) and (use < 10000000):
fin = 2000.00
else:
use1 = use - 10000000
start = 2000.00
fin = str(start + (0.00025 * use))
print ("Your bill is:$" + fin)
def bill(code):
# Use string formatting throughout print statements here,
# string concatenation ("abc" + var) expects a string type.
print("Code:%i" %code)
print("Beggining reading:%i" %galos)
print("Ending reading:%i" %galoe)
print("Gallons used:%i" %use)
print("Money owed:$%.2f" %fin)
galos = 0
galoe = 0
use = 0
fin = 0
ind()
bill(1234)