2014-11-06 2 views
0
loop = 1 

choice = 0 #holds the user choice for menu 

while (loop == 1): 
    print ("Welcome to calci.py") 
    print ("your options are:") 
    print (" ") 
    print ("1. Addition") 
    print ("2. Subtraction") 
    print ("3. Multiplication") 
    print ("4. Division") 
    print ("5. Quit calculator.py") 
    print (" ") 

    choice = input("Choose your option: ") 
    if (choice == 1): 
     add1 = input("Add this: ") 
     add2 = input("to this: ") 
     print (add1, "+", add2, "=", add1 + add2) 
    elif (choice == 2): 
     sub2 = input("Subtract this: ") 
     sub1 = input("from this: ") 
     print (sub1, "-", sub2, "=", sub1 - sub2) 
    elif (choice == 3): 
     mul1 = input("Multiply this: ") 
     mul2 = input("with this: ") 
     print (mul1, "*", mul2, "=", mul1 * mul2) 
    elif (choice == 4): 
     div1 = input("Divide this: ") 
     div2 = input("by this: ") 
     print (div1, "/", div2, "=", div1/div2) 
    elif (choice == 5): 
     loop = 0 

print ("Thankyou for using calci.py!") 

Я новичок в мире python, я написал и скомпилировал код калькулятора, но его не работает, нужна помощь!Базовая программа калькулятора не работает в Python idle

+1

«Не работает» не является конкретной проблемой. Любые ошибки? Является ли логическая ошибка? Почему ты так думаешь? Какие ценности вы принимаете? Что ты вернешь? Чего ты ожидал? Как вы пытались это исправить? – Ben

+0

Это работает для меня. Укажите точную ошибку/проблему. –

+0

Это Python 3 или 2? Если это Python 2, я вижу, что вы используете целочисленное деление ... – irrelephant

ответ

1

Ваш код:

choice = input("Choose your option: ") 
if (choice == 1): 

здесь вход будет возвращать строки вывода. Поэтому в вашем случае вам нужно будет:

choice = input("Choose your option: ") 
if (choice == '1'): 

Тогда это сработает. Но помните, что это будет concat две строки в приведенном выше примере. Возможно, вам понадобится преобразовать эту строку в целое число, а затем выполнить арифметику.

Таким образом, вы можете использовать как

intchoice = int(choice) 
if (intchoice == 1): 

так же вы должны следовать за add1/ADD2 и других входных параметров.

0

Я попытался запустить ваш код в терминале, и он бесконечно петли, как указано. Сначала вы выбрали нулевой параметр, но ваш код не обрабатывает нуль, поэтому он не знает, что делать, это просто петли. Попробуйте добавить блок else и конец своих операторов elif, чтобы поймать что-либо, что elif не учитывает. EX:

else: 
    print("Error") 
    loop=0 

Я вижу, вы используете в то время цикла, чтобы попытаться сделать запуск программы непрерывно, пока пользователь не завершит работу. попробуйте использовать input() или raw_input(), чтобы получить выбор пользователя для операции. Другая тогда эта замечательная работа!

Смежные вопросы