2009-05-16 7 views
-1

Je suis très nouveau donc juste apprendre, alors allez-y doucement s'il vous plaît!Quel est le problème avec ce code Python?

start = int(input('How much did you start with?:')) 
if start < 0: 
    print("That's impossible! Try again.") 
    print(start = int(input('How much did you start with:'))) 
if start >= 0: 
    print(inorout = raw_input('Cool! Now have you put money in or taken it out?: ')) 
    if inorout == in: 
     print(in = int(raw_input('Well done! How much did you put in?:'))) 
     print(int(start + in)) 

Ceci entraîne toujours une erreur de syntaxe? Je suis sûr que je fais quelque chose d'évident faux!

Merci!

+0

Êtes-vous d'exécuter cette à travers python 3 ou 2.x? –

Répondre

7
  • Vous ne pouvez pas affecter des variables dans les expressions en Python, comme dans C: print (start = int (input ('blah'))) n'est pas correct. Faites l'affectation d'abord dans une déclaration séparée.
  • La première ligne ne doit pas être indentée, mais il peut s'agir d'une erreur de copier-coller.
  • Le mot in est un mot réservé de sorte que vous ne pouvez pas l'utiliser pour les noms de variables
+0

Et 'in' n'est pas défini dans la condition if et il y a une entrée (python 3) ou raw_input. – Dario

+0

aurait dû être inorout == "in", mot réservé non prévu comme nom de variable. – gimel

3

Attribution dans des déclarations est votre problème. Déplacer les tâches sur les instructions d'impression

+0

impression est une fonction ici. – SilentGhost

0
  • Envisager demander quoi que ce en utilisant une fonction enroulant une boucle.
  • Ne pas utiliser input pour l'entrée utilisateur général, utilisez raw_input à la place
  • Enveloppez votre exécution de script dans une fonction principale de sorte qu'il n'exécute pas l'importation

def ask_positive_integer(prompt, warning="Enter a positive integer, please!"): 
    while True: 
     response = raw_input(prompt) 
     try: 
      response = int(response) 
      if response < 0: 
       print(warning) 
      else: 
       return response 
     except ValueError: 
      print(warning) 

def ask_in_or_out(prompt, warning="In or out, please!"): 
    ''' 
    returns True if 'in' False if 'out' 
    ''' 
    while True: 
     response = raw_input(prompt) 
     if response.lower() in ('i', 'in'): return True 
     if response.lower() in ('o', 'ou', 'out'): return False 
     print warning 

def main(): 
    start = ask_positive_integer('How much did you start with?: ') 
    in_ = ask_in_or_out('Cool! Now have you put money in or taken it out?: ') 
    if in_: 
     in_amount = ask_positive_integer('Well done! How much did you put in?: ') 
     print(start + in_amount) 
    else: 
     out_amount = ask_positive_integer('Well done! How much did you take out?: ') 
     print(start - out_amount) 

if __name__ == '__main__': 
    main() 
Questions connexes