2016-08-07 13 views
0

私はtemp.convertersと他の数学的な使用を追加しようとしますが、私はそれをテストするときにコードは、 また、同時に複数の番号を追加するためにリストを使用する方法があります基本的な電卓/将来の温度コンバータ/将来の科学計算機

#Returns the sum of num1 and num2 
def add(num1, num2): 
    return num1 + num2 

#Returns the result of subtracting num1 - num2 
def sub(num1, num2): 
    return num1 - num2 

#Returns the result of multiplying num1 * num2 
def mul(num1, num2): 
    return num1 * num2 

#Returns the result of dividing num1/num2 
def div(num1, num2): 
    return num1/num2 

#Returns the result of dividing num1/num2 
def exp(num1, num2): 
    return num1 ** num2 

from math import * 


print("1: ADDITION") 
print("2: SUBTRACTION") 
print("3: MULTIPLICATION") 
print("4: DIVISION") 
print("5: Exponent") 
print("6: Square root") 
print("7: ") 
print("8:") 
print("9:") 
print("10:") 

def main(): 
    operation = int(input("operation:")) 

    if(operation == '1'): 
     a = var1("input a:") 
     b = var2("input b:") 
     print(add(var1, var2)) 

    elif(operation == '2'): 
     a = var1("input a:") 
     b = var2("input b:") 
     print(sub(var1, var2)) 

    elif(operation == '3'): 
     a = var1("input a:") 
     b = var2("input b:") 
     print(div(var1, var2)) 

    elif(operation == '4'): 
     a = var1("input a:") 
     b = var2("input b:") 
     print(mul(var1, var2)) 

    elif(operation == '5'): 
     a = var1("input a:") 
     b = var2("input b:") 
     print(exp(var1, var2)) 

    elif(operation == '6'): 
     a = var1("input:") 
     print(sqrt(var1,)) 

    elif(operation == '7'): 
     a = var1("input a:") 
     b = var2("input b:") 
     print(add(var1, var2)) 

    else: 
     main() 

main() 
+0

あなたを変換された演算を整数に変換しますが、文字列 –

+0

と比較しています。「再帰」の代わりにwhileループを使用して入力を繰り返すことをお勧めします。 –

答えて

0

あなたは辞書発送方法、例えばPythonでoperatorモジュールを利用して使用することができます。

import operator 
from math import sqrt 

operations = { 
    '1': operator.add, 
    '2': operator.sub, 
    '3': operator.mul, 
    '4': operator.truediv, 
    '6': sqrt, 
    '99': lambda c: c * 1.8 + 32 # convert C -> F 
} 

for operation in iter(lambda: input('Operation: '), 'quit'): 
    if operation not in operations: 
     print('Sorry - not sure what {} is'.format(operation)) 
     continue 
    args = map(int, input('Enter values: ').split()) 
    print('Result is', operations[operation](*args)) 
+0

ルーキーミスのために少し複雑に見えます。 ? –

+0

@ cricket_007おそらく、それは正しい道を導き、利用可能なさまざまな方法を考えるだろう... –