2017-10-28 14 views
1

他の関数を呼び出すのが難しいです。たとえば、ユーザがcalculate(2,3,"+")を入力した場合、addition()関数を呼び出してその結果を表示したいとします。ユーザーがcalculate(2,3,"-")を入力した場合、私はsubtraction()関数に電話したいと思う。 これは私がcalculate(num1, num2, string)が他の関数を呼び出したい私のコード関数呼び出しの仕方その他の4つの関数を4つの算術演算(加算、減算、乗算、除算)を実行する

def addition(): 
if string == "+": 
    a = num1 + num2 
    print("addition was performed on the two numbers ", num1, ' and ', num2) 
    return a 



def subtraction(): 
if string == "-": 
    s = num1 - num2 
    print("subtraction was performed on the two numbers ", num1, ' and ', num2) 
    return s 



def multiplication(): 
if string == "*": 
    t = num1 * num2 
    print("multiplication was performed on the two numbers ", num1, ' and ', num2) 
    return t 



def division(): 
if string == "/": 
    d = num1/num2 
    print("division was performed on the two numbers ", num1, ' and ', num2) 
    return d 


def calculate(num1, num2, string): 
str(string) 

です。 ところで、私は初心者ですが、ごめんなさいあなたのコードは混乱します。

**ありがとう、domandinho。ここにコードを貼り付けたときに空白が残ってしまった**

+2

最初にまず:コードのインデントを修正します。 –

答えて

1

最初に間違った意図があります。命令が4つのスペースの後になければならない場合、ifの下のすべての命令は8つのスペースの後になければなりません。すべての変数は、それらを使用する関数でアクセス可能でなければならないため、加算、減算、乗算、および除算にはnum1とnum2が必要です。 文字列変数の型がstrなので、str(string)は何もしません。文字列の値に応じて、これら4つの関数をcalculate関数で呼び出す必要があります。

第2に、strの値が計算機能になければならないかどうかチェックします。たとえば加算機能ではありません。文字列が '+'以外の場合、加算関数はNoneを返します。

def addition(num1, num2): 
    a = num1 + num2 
    print("addition was performed on the two numbers ", num1, ' and ', num2) 
    return a 


def subtraction(num1, num2): 
    s = num1 - num2 
    print("subtraction was performed on the two numbers ", num1, ' and ', num2) 
    return s 


def multiplication(num1, num2): 
    t = num1 * num2 
    print("multiplication was performed on the two numbers ", num1, ' and ', num2) 
    return t 


def division(num1, num2): 
    d = num1/num2 
    print("division was performed on the two numbers ", num1, ' and ', num2) 
    return d 


def calculate(num1, num2, string): 
    result = None 
    if string == '+': 
     result = addition(num1, num2) 
    elif string == '-': 
     result = subtraction(num1, num2) 
    elif string == '*': 
     result = multiplication(num1, num2) 
    elif string == '/': 
     result = division(num1, num2) 
    print('Result is ' + str(result)) 
2

辞書とoperatorモジュールを使用する別の方法です。

import operator 

d = { 
    '+': operator.add, 
    '-': operator.sub, 
    '*': operator.mul, 
    '/': operator.truediv, 
    } 

def calculate(num1, num2, string): 
    return d[string](num1, num2) 
関連する問題