2017-03-12 19 views
0

私のPythonプログラムでは、複数の関数が定義されていて、メニューを保持するメイン関数があります。メニューは最初に表示する必要がありますが、プログラムはmain関数の前にある定義済みの関数を最初に実行しようとしています。これは多くの問題を引き起こしています。助言がありますか。Python main()が正しく実行されていません

#!usr/bin/env python 
import operator 

saved_string = '' 


def remove_letter():       
    return 

def num_compare():        
    return 

def print_string():       
    print saved_string 
    return 

def calculator():        
    sign_dict = {"+": operator.add(), "-": operator.sub(), "*": operator.mul(), "&": operator.div()} 

    num1 = int(raw_input("First number: ")) 
    sign = str(raw_input("Action: ")) 
    num2 = int(raw_input("Second number: ")) 


    print sign_dict[sign] (num1, num2) 



    return 

def accept_store(): 
    global saved_string       
    saved_string = str(raw_input("Enter string: ")) 
    return 

def main():          
    opt_list = [accept_store(), 
       calculator(), 
       print_string(), 
       num_compare(), 
       remove_letter()] 

    while(True): 
     print "SELLECT OPTIONS:" 
     print "1\tAccept and Store" 
     print "2\tCalculator" 
     print "3\tPrint String" 
     print "4\tNumber Compare" 
     print "5\tRemove Letter" 
     opt_choice = int(raw_input("SELLECTION: ")) 
     opt_choice -= 1 
     opt_list[opt_choice]() 


    return 


main() 
+3

変更を[)accept_store()、電卓(、...]'へ '[accept_store、電卓、...] ' –

+2

あなたの踏み込みを修正してください。 – Ash

答えて

1

()は、関数呼び出し表記です。したがって、opt_listには、すべての関数が関数名ではなくと表示されています。その後のような各機能を呼び出す

opt_list = [fn1, fn2, ...] 

:あなたはそれを変更する必要があると思います `

for f in opt_list: 
    f() 
+0

Forループは必要ありません。 'opt_list [opt_choice]()'は正しいです。リストの変更が必要 –

+0

@ cricket_007リスト内の関数を呼び出す方法を彼に示したかっただけです。私が知っているのは – spicypumpkin

+0

です。そして、私はその部分が既にコードで処理されているはずだと私は –

関連する問題