2016-08-07 3 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

당신은 사전 발송 방법, 예를 들어 파이썬에서 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 아마도 -하지만 잘하면 그것은 올바른 길로 인도하고 가능한 다른 방법에 대해 생각합니다. –