缩短python中的计算器

时间:2016-02-08 09:52:43

标签: python

我已经设法在Python中创建了一个小型计算器,但我正在努力缩短代码。有人可以帮忙吗?

elif queencommand == "/calc addition" :
    num1 = input("Enter first number")
    num2 = input("Enter second number")
    Answer = (int(num1) + int(num2))
    input(Answer)
elif queencommand == "/calc subtraction" :
    num1 = input("Enter first number")
    num2 = input("Enter second number")
    Answer = (int(num1) - int(num2))
    input(Answer)
elif queencommand == "/calc multiplication" :
    num1 = input("Enter first number")
    num2 = input("Enter second number")
    Answer = (int(num1) * int(num2))
    input(Answer)
elif queencommand == "/calc division" :
    num1 = input("Enter first number")
    num2 = input("Enter second number")
    Answer = (int(num1) / int(num2))
    input(Answer)

我也无法一次完成两项操作。

2 个答案:

答案 0 :(得分:1)

使用您自己定义的operator module或简单函数中的函数进行计算,然后将操作名称从queencommand字符串映射到这些函数:

import operator

ops = {
    'addition': operator.add,
    'subtraction': operator.sub,
    'multiplication': operator.mul,
    'division': operator.truediv
}
if queencommand.startswith("/calc"):
    operation = queencommand.partition(' ')[-1]
    if operation in ops:
        num1 = input("Enter first number")
        num2 = input("Enter second number")
        Answer = ops[operation](int(num1), int(num2))

operator.add可以替换为lambda a, b: a + b等,如果您不想将模块用于这些操作。

答案 1 :(得分:0)

这是一个完全成熟的计算器。看看它是否有帮助:

    def multiplication():
      num1 = int(input("First #: "))
      num2 = int(input("Second #: "))
      ans = num1 * num2
      print(ans)

    def addition():
      num1 = int(input("First #: "))
      num2 = int(input("Second #: "))
      ans = num1 + num2
      print(ans)


    def subtraction():
      num1 = int(input("First #: "))
      num2 = int(input("Second #: "))
      ans = num1 - num2
      print(ans)


    def division():
      num1 = int(input("First #: "))
      num2 = int(input("Second #: "))
      ans = num1 / num2
      print(ans)


    def Help():
      print("""Welcome to Calculator P1!!!       
      Type "x" for multiplication.
      Type "+" for addition.
      Type "-" for subtraction.
      Type "/" for division.""")


    while True:
      print("Type 'help' for introduction or instructions")
      choice = input("Operator: ")

      if choice == "x" or choice == "muliplication":
        multiplication()

      elif choice == "+" or choice == "addition":
        addition()

      elif choice == "-" or choice == "subtraction":
        subtraction()

      elif choice == "/" or choice == "division":
        division()

      elif choice == "help":
        Help()


      answer = input('Run again? (y/n): ')
      if answer == 'n':
        break
      elif answer == 'y':
        continue
      else:
        print("""Unrecognized Input.
                       <<<<RESTARTING PROGRAM>>>>""")
        continue