2

ターミナルを開き、実行しようとしている非常に基本的なプログラムである、trianglearea.py という .py ファイルがあるドキュメントに cd します。シェルに /Documents$ python triplearea.py と入力しても何も起こりません。bash は、プロンプトが存在しないかのように、別のコマンドを求めるプロンプトを出します。./trianglearea.py を試してみましたが、インタラクティブな python を入力していないため、構文エラーが発生し、bash は python スクリプトを理解できません。ファイルGUIスタイルに移動してダブルクリックしてターミナルで実行すると、ウィンドウが点滅して消えますが、それは私が望むものではありません。小さなプログラムをインタラクティブな python で実行して、何かを入力して実際に関数を使用できるようにしたいと考えています。これが.pyファイルにあるすべてです

def area(base,height):
    ''' (number, number) - number
    Return area of a triangle with dimensions base * height

    >>>>area(10,5)
    25.0
    '''
    return base*height/2

これがそれほど難しいことではないことはわかっていますが、私は困惑しました。

4

2 に答える 2

5

何も起こらない理由は、スクリプトでメソッドを呼び出していないためです。そのため、ファイルは単にメソッドを定義してから終了します。これは簡単な修正です:

def area(base,height):
    ''' (number, number) - number
    Return area of a triangle with dimensions base * height

    >>>>area(10,5)
    25.0
    '''
    return base*height/2

print area(10,5) # calling the method

これを修正する適切な方法は、次のチェックを追加することです。

if __name__ == '__main__':
    print area(10,5)

Python スクリプトがコマンド ラインから実行されると、特殊変数__name__が文字列に設定されます'__main__'(詳細については、この回答を参照してください)。その if ステートメントは本質的に、「コマンド ラインから実行した場合、引数 10 と 5 を指定してメソッド領域を実行し、結果を出力する」と述べています。

最後に、このようにプロンプ​​トからスクリプトを実行できるようにするには、スクリプトの./myscript.py実行方法をシェルに指示する必要があります。これは、ファイルの先頭にシバン行を追加することによって行われます。

これらすべてを組み合わせると、ファイルは次のようになります。

#!/usr/bin/python

def area(base,height):
        ''' (number, number) - number
        Return area of a triangle with dimensions base * height

        >>>>area(10,5)
        25.0
        '''
        return base*height/2

if __name__ == '__main__':
    print area(10,5)
于 2013-02-09T08:14:58.220 に答える
1

スクリプトファイル名が次のmycode.py場合に使用できるとしますpython -i mycode.py

$ python -i mycode.py
>>> area(10, 5)   

-i 第一引数にスクリプトを渡すか、-c オプションを使用した場合は、スクリプトまたはコマンドの実行後に対話モードに入ります。参照

于 2013-02-09T08:19:37.907 に答える