2016-07-24 1 views
-5
import time 
#Initializing Variables 
currentMoney = 0 
depositedMoney = 0 
takenMoney = 0 
#Main Fucntion which shows when the program starts 
def Main(): 
    while True: 
     userChoice = input("Welcome to the ATM Organizer. To Preceed Enter 1 To Close Enter 0") 
     if userChoice == 1: 
      Atm() 
     elif userChoice == 0: 
      print("Thank you.Good Bye!") 
      break 
def Atm(): 
    Handling Invalid Inputs 
    while True: 
     try: 
      atm = int(input("Welcome Inside The ATM , To See your money , Type '1' , To put money to the cash machine , Type '2' , To take money out of the ATM , Type '3' , To Exit the ATM , Type '0' .")) 
     except ValueError: 
      print("You didn't choose what was given!") 
      continue 
    Input Choices 
     if (atm == 0): 
      Main() 
     elif (atm == 1): 
      print("You Have ",currentMoney," Inside your account.") 
      break 
     elif (atm == 2): 
      money = int(input("How Much money do you want to deposit? ")) 
      depositedMoney+=money 
      currentMoney=depositedMoney 
      print("You Have ",currentMoney," Inside Your Account") 
      break 
     elif (atm == 3): 
      while True: 
       takeMoney = int(input("How much money do you want to take? ")) 
       if (takeMoney > currentMoney): 
        print("You don't have that value.") 
        continue 
       else: 
        print("LOADING...") 
        time.sleep(3) 
        takenMoney+=takeMoney 
        print("You've taken ",takenMoney," , You now have "(currentMoney-takenMoney," In your account") 
        break 
Main() 

Когда я пытаюсь запустить его, он подчеркивает, что выше «break», когда я его удаляю, появляется еще одна ошибка, которая является «Main()» при последнем коде », и« она продолжает делать это ...Я не знаю, что здесь не так, и я попробовал почти все, но он все еще не хочет работать.

Надеюсь, я смогу найти ответ.

+1

Вопросы, ищущих отладки помощи (** «? Почему не этот код работает» **) должны включать в себя желаемое поведение, * конкретную проблему или ошибку * и * кратчайший код необходимо * для воспроизведения ** в самом вопросе **. Вопросы без ** ясного заявления о проблеме ** не полезны для других читателей. См. [Как создать минимальный, завершенный и проверяемый пример] (http://stackoverflow.com/help/mcve). – MattDMo

ответ

0

Я получил ваш код. По взглядам вещей вы новичок в программировании. Основная проблема заключалась в том, что вы не можете обращаться к переменным изнутри функции, если вы не включаете их в качестве аргументов. Я рекомендую вам взглянуть на this tutorial.

Рабочий код:

import time 
#Initializing Variables 
currentMoney = 0 
depositedMoney = 0 
takenMoney = 0 
#Main Fucntion which shows when the program starts 
def Main(currentMoney, depositedMoney, takenMoney): # arguments were missing 
    while True: 
     try: 
      userChoice = int(input("Welcome to the ATM Organizer. To Preceed Enter 1 To Close Enter 0")) # "int()" was missing. had to add try and except as well 
     except ValueError: 
      print("You didn't choose what was given!") 
      continue 
     if userChoice == 1: 
      currentMoney, depositedMoney, takenMoney = Atm(currentMoney, depositedMoney, takenMoney) # was missing 
     elif userChoice == 0: 
      print("Thank you.Good Bye!") 
      break 
def Atm(currentMoney, depositedMoney, takenMoney): # arguments were missing 
    #Handling Invalid Inputs # comment sign was missing 
    while True: 
     try: 
      atm = int(input("Welcome Inside The ATM , To See your money , Type '1' , To put money to the cash machine , Type '2' , To take money out of the ATM , Type '3' , To Exit the ATM , Type '0' .")) 
     except ValueError: 
      print("You didn't choose what was given!") 
      continue 
    #Input Choices # comment sign was missing 
     if (atm == 0): 
      return currentMoney, depositedMoney, takenMoney # was missing 
     elif (atm == 1): 
      print("You Have ",currentMoney," Inside your account.") 
      return currentMoney, depositedMoney, takenMoney # was missing 
     elif (atm == 2): 
      money = int(input("How Much money do you want to deposit? ")) 
      depositedMoney+=money 
      currentMoney=depositedMoney 
      print("You Have ",currentMoney," Inside Your Account") 
      return currentMoney, depositedMoney, takenMoney # was missing 
     elif (atm == 3): 
      while True: 
       takeMoney = int(input("How much money do you want to take? ")) 
       if (takeMoney > currentMoney): 
        print("You don't have that value.") 
        continue 
       else: 
        print("LOADING...") 
        time.sleep(3) 
        takenMoney+=takeMoney 
        print("You've taken ",takenMoney," , You now have ",(currentMoney-takenMoney)," In your account") # ")" was missing, "," was missing 
        return currentMoney, depositedMoney, takenMoney # was missing 
Main(currentMoney, depositedMoney, takenMoney) # arguments were missing 
+0

Ах, спасибо большое, но нужно ли мне возвращать их каждый раз? Я мог бы назначить их переменной, а затем использовать ее с оператором return .. и да, я новичок в программировании, я учился как 3 или 4 месяца, я не знаю, но проблема в том, что я изучаю многие вещи, проектирование и другие языки тоже, JavaScript, PHP, Java и Python, поэтому я не профессионал, еще раз: большое спасибо за вашу помощь, мне нравится программа на самом деле ... –