2016-10-30 21 views
-4

私はPython 2.7で非常に基本的な電卓を作った。私は非常に基本的な電卓を作ったが、動かない

正常に機能しました。

次に、私はstartという関数でラップしたので、プログラムは各計算後に終了せず、動作を停止しました。

私は間違っていますか?

これは私のコードの関連する部分である:

def start(): 
    user_function = raw_input('type "sub" to subtract, "add" to add, "div" to divide or "mul" to multiply: ') 
    print "You selected " + user_function 
    if user_function == "add": 
     # Lots more logic in here. 
     # Removed because it is irrelevant to the question. 
    else: 
     print "you did not provide a valid function" 
    start() 
+2

'def start():'の中に 'start()'インデントがあるようです。したがって、あなたは本当にあなたの機能を呼び出すことはありません。末尾の 'start()'は字下げする必要はありません –

+1

古い2.7リリースの理由はありますか? Pythonを学んでいるなら、Python 3(現在のリリースは3.5です)に行くのが理にかなっています。 – cdarke

+1

これは「無料のコードをデバッグする」ではありません! –

答えて

2

は、あなたのスタート機能へのお電話を見たことがありますか?インデントが間違っている場合は、def start():行と同じレベルのインデントが必要です。

def start(): 
    # your code here 
    start() # indentation incorrect 
start() # correct indentation 
+0

なぜ間違っていますか?起動機能がブレーク状態になったら!このメソッドは、サンプルの 'loop'関数です。ループ関数用のクラスを作成する必要があります。そうしないと、再帰的な制限が機能を破棄します。この方法は間違っていません!あなたのコードについて質問していません....:D – dsgdfg

-2

これは、関数を記述したが関数外で呼び出さなかったためです。あなたはこのPythonのファイルでそれを実行したい場合はまた、あなたが

if __name__ == "__main__": 
    start() 

または単に外とスタート機能の下start()を呼び出すを追加することができます。

関連する問題