2016-01-24 2 views
0

Я новичок в Python. Я попытался сделать базовый калькулятор, но я не могу найти проблему. Он возвращается с кодом 0 выхода, но ничего не появляется, никакого ввода нет ничего. Любая помощь с этим будет очень оценена. Спасибо.Базовый калькулятор в Python

def add(num1, num2): 
    return num1 + num2 

def subtract(num1, num2): 
    return num1 - num2 

def div(num1, num2): 
    return num1/num2 

def multi(num1,num2): 
    return num1*num2 

def main(): 
    operation = input("What do you want to do?(+, -, *, or /):") 
    if (operation != "+" and operation != "-" and operation != "*" and operation != "/"): 
     print("Your input is invalid. Please enter a valid input.") 
    else: 
     num1 = float(input("Enter value for num1: ")) 
     num2 = float(input("Enter value for num2: ")) 
     if (operation == "+"): 
      print(add(num1, num2)) 
     elif (operation == "-"): 
      print(subtract(num1, num2)) 
     elif (operation == "*"): 
      print(multi(num1,num2)) 
     elif (operation == "/"): 
      print(div(num1,num2)) 

    main() 
+0

Пожалуйста, исправьте форматирование! –

ответ

0

Основываясь на приведенном выше коде, вы никогда на самом деле работает main(). Прямо сейчас вы сказали, что определение main - это запрос пользователю, проверка правильности ввода и последующая математика. main() в конце вызывает повторение программы после выполнения всего этого (не уверен, хотите ли вы цикл или нет).

Если вам не нужен цикл и просто нужно запустить калькулятор один раз, просто удалите отступ последнего main(), потому что прямо сейчас отступ означает, что он находится внутри def main(). Просто переместите его влево, чтобы быть на том же уровне отступа, что и def main():, и ваша программа должна работать нормально.

+0

Большое спасибо человеку. Ты лучший. Очень приятно иметь такое сообщество и таких людей, как вы, чтобы помочь. Не могу вас поблагодарить. –

0

Я думаю, что вам не хватает:

if __name__ == "__main__": 
    main() 

Ваш призыв к main() внутри main сам не выполняет, и что, вероятно, почему вы не получаете никакого вклада.

Кроме этого ваш код должен работать должным образом (убедитесь, что вы не делите на ноль;)).

Edit: сделать мой ответ более очевидным, вы должны сделать:

def main(): 
    operation = input("What do you want to do?(+, -, *, or /):") 
    if (operation != "+" and operation != "-" and operation != "*" and operation != "/"): 
     print("Your input is invalid. Please enter a valid input.") 
    else: 
     num1 = float(input("Enter value for num1: ")) 
     num2 = float(input("Enter value for num2: ")) 
     if (operation == "+"): 
      print(add(num1, num2)) 
     elif (operation == "-"): 
      print(subtract(num1, num2)) 
     elif (operation == "*"): 
      print(multi(num1,num2)) 
     elif (operation == "/"): 
      print(div(num1,num2)) 

if __name__ == "__main__": 
    main() 
+0

все еще нет, такой же предмет. Выход с нулевым кодом выхода и без ввода. Как будто кода не было. –

+0

@BadrAlshaer - это код, в котором вы указали ** полный ** и ** полный код **, который вы запускаете? – Idos

+0

Насколько я могу судить сейчас, ваша проблема заключалась в том, что вы на самом деле не написали код, который я сказал в нужном месте, иначе он бы сработал. – Idos