2016-10-14 7 views
-3

構文エラーまたはコンパイルエラーはありません。なぜこのプログラムは実行されていないのですか?私はコンパイルエラーがない場合、なぜこのプログラムが実行されていないのかを知ることができません。このコードの下で論理的に間違っていたことは何ですか? このコードを実行してやりとりするためにこのコードに追加することはできますか?このコードが実行されないのはなぜですか?

def main(): 
    print "Checking platform...\r\r\r" 
    platform = systemdetails() 

def systemdetails(): 
    print "Hello! Welcome to the auto-commander" 
    print "Please enter the platform specific number to automate." 
    platforminput = integer(input ("1. Cisco  2. Linux/Unix  3. Juniper  4. VMware vSphere/NSX \n:")) 
    if platforminput ==1: 
     platform='cisco_ios' 
    elif platforminput ==2: 
     platform='linux' 
    elif platforminput ==3: 
     platform='juniper' 
    elif platforminput ==4: 
     platform='vmware' 
    else: 
     print "Commander has to repeat the question...\n\n" 
     systemdetails() 
    return platform 
+0

ユーザーが間違った応答を入力したために再発すると、その呼び出しの値は返されません。これは 'return systemdetails()'でなければなりません。しかし、これは再帰的ではなくループを使う方が良いでしょう。 – Barmar

+5

あなたは 'main()'への呼び出しがありません – Barmar

+0

http://stackoverflow.com/questions/17257631/the-main-function-appears-to-not-work – TigerhawkT3

答えて

5

メイン関数を呼び出す必要があります。まだあなたの問題を再現する最小限の例では、この作業を取得するには

def main(): 
    print "Hello World!" 

である、あなたは、一般的にあなただけがインポートされていない場合は、あなたのmainを呼び出したいあなたの主な

def main(): 
    print "Hello World!" 

main() 

を呼び出す必要がありますそのようにすることができます

def main(): 
    print "Hello World!" 

if __name__ == '__main__': 
    main() 
3

あなたはmain()機能に電話する必要があります。

次のように次のいずれかの

main()

またはこのような:あなたが直接ではなく、モジュールをインポートするよりも、プログラムを実行する場合

if __name__ == "__main__": 
    main() 

2番目の例では、main()のみが呼び出され、機能を個別に実行します。こうすることで、インポート時にmain()を実行することなくモジュールの関数を別々にインポートすることができます。

関連する問題