2017-07-31 8 views
0

私はステートメントを印刷するためにこれらのコードを得ましたが、ifループの最後の2行の目的を得られませんか? ランダムインポートランダム偏ったコインフリップのためのPython印刷ステートメント?最後の2行はどういう意味ですか?

def flip(bias): 
    """ 
    Flip a coin once. 
    `bias` is the likelihood of the result being heads, 0. <= bias <= 1. 
    Returns True for heads or False for tails 
    """ 
    return random() < bias 

def main(): 
    bias = float(input("What bias do your coins have? ")) 
    count = {False: 0, True: 0} 
    for i in range(1, 4): 
     toss = flip(bias) 
     count[toss] += 1 
     print("Coin flip {} has a value of heads: {}".format(i, toss)) 
    print("Final result: {} heads, {} tails".format(count[True], count[False])) 

if __name__ == "__main__": 
    main() 

ありがとうございます。

+0

for-loopを意味しますか? – Carcigenicate

+0

'main'関数はそれ自身のファイル内でのみ実行します。そうでなければ、他のファイルにインポートすることから実行できます。 –

答えて

0

それは輸入の理由からです。

私は、たとえば別のプログラムでその機能を使用したい場合は、これらの2行は私がそうすることを許可しないだろう。詳細については、hereを確認することができます。受け入れられた答えを引用する:

これを行う理由の1つは、直接実行できるモジュール(.pyファイル)を書くことがあることです。また、別のモジュールでインポートして使用することもできます。メインチェックを行うことで、モジュールをプログラムとして実行し、誰かがあなたのモジュールをインポートして自分自身の関数を呼び出そうとしているときに実行したくないときにのみ、そのコードを実行させることができます。言い換えれば

、機能は、それが中に置かれたファイルに呼び出さなければなりません。それは例えばone.pyにあったとtwo.pyにインポートした場合、私はtwo.pyone.pyで機能を実行することはできませんが。

0

Pythonはスクリプト言語です。 C++とは異なり、Pythonはmain()を特別なものとして扱いません。したがって、ファイルをスクリプトとして実行している場合はmain()を実行します。

if __name__ == "__main__": 
    main() 

ファイルをスクリプトとして実行されている場合は、__name__"__main__"に等しくなるように保証されているので、これは主な機能を実行します。ファイルがモジュールとしてロードされている場合、__name__は、モジュール名となりますので、この実行されません。

これはかなりよく見られるPythonの慣用句です。だから、if __name__ == "__main__"と表示されたら、それを認識することができます。

0

あなたが実行されているファイルは、この特定のpythonファイルであれば、​​はtrueです。このファイルがインポートされ、別のファイルが実行されている場合は、​​は真実ではありませんので、 ==「メイン」後のコードが実行されることはありません。

関連する問題