2015-04-23 4 views
-4
def add(num1, num2): 
    return num1 + num2 

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

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

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

print("\t\t\tCalculator App") 

def main(): 
    operation = input("\nWhat do you want to do: (+, -, *, /)? ") 
    if(operation != "+" and operation != "-" and operation != "*" and operation != "/"): 
     #invalid operation 
     print("You have entered an invalid key") 
    else: 
     var1 = int(input("Please number : ")) 
     var2 = int(input("Please enter another number : ")) 
     if(operation == "+"): 
      print("Answer is: ", add(var1, var2)) 
     elif(operation == "-"): 
      print("Answer is: ", sub(var1, var2)) 
     elif(operation == "*"): 
      print("Answer is: ", multi(var1, var2)) 
     else: 
      print("Answer is: ", div(var1,var2)) 

main() 

rerun = input("ReRun? (y/n)") 
while(rerun == "y"): 
    main() 
    rerun = input("ReRun? (y/n) ") 
else: 
    exit() 

Чтение книг, просмотр видеороликов и самостоятельное изучение было сложным.Python - эта петля правильная?

Пожалуйста, дайте мне знать, если это правильный способ свернуть эту программу, я уверен, что есть альтернативы.

+0

Существуют ли какие-либо заметные ошибки в вашей программе? – logic

+0

Эта программа выглядит простым способом, и если она работает без ошибок, то выглядит хорошо для меня – kyrenia

+0

@logic Я думаю, что это работает, но Pycool0 интересуется правильным методом для создания такой программы? – zfb

ответ

1

Если вы имеете в виду повторно выполните петлю на дне, ниже, вероятно, уборщик:

while True: 
    main() 
    if input("ReRun? (y/n) ") == 'n': 
     break 

Следует отметить, что он по умолчанию повторного запуска, если пользователь вводит что-то не ожидал.

0

я сделал бы что-то вроде

operators = dict() 
operators['+'] = lambda x,y: x+y 
operators['-'] = lambda x,y: x-y 
operators['*'] = lambda x,y: x*y 
operators['/'] = lambda x,y: x/y 

def main(): 
    operation = input("\nWhat do you want to do: (+, -, *, /)? ") 

    if operation in operators: 
     var1 = int(input("Please number : ")) 
     var2 = int(input("Please enter another number : ")) 
     print("Answer is: ", operators[operation](var1, var2)) 
    else: 
     print("You have entered an invalid key") 

while True: 
    main() 
    if input("ReRun? (y/n) ") == 'n': 
     break 

Что я считаю более readeable и проще расширить (добавить новые операторы)

+0

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

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