これは私のpython hello.py
スクリプトです:
def hello(a,b):
print "hello and that's your sum:"
sum=a+b
print sum
import sys
if __== "__main__":
hello(sys.argv[2])
問題は、Windowsコマンドラインプロンプトから実行できないことです。次のコマンドを使用しました。
C:\Python27>hello 1 1
しかし、残念ながらうまくいきませんでした。誰か助けてください。
import sys
hello関数がありません。'
を含む文字列リテラルはエスケープするか、"
で囲む必要があります。python hello.py <some-number> <some-number>
を使用してプログラムを呼び出しましたか?import sys
def hello(a,b):
print "hello and that's your sum:", a + b
if __== "__main__":
a = int(sys.argv[1])
b = int(sys.argv[2])
hello(a, b)
コマンドラインからプログラムを実行するには、次のようにpythonインタープリターを呼び出す必要があります。
C:\Python27>python hello.py 1 1
コードが別のディレクトリにある場合は、PATH環境変数にpythonバイナリパスを設定して、実行することもできます。詳細な手順を見つけることができます こちら 。
これまでの回答をすべてまとめたものは次のとおりです。
コードは次のようになります。
import sys
def hello(a, b):
print "hello and that's your sum:"
sum = a+b
print sum
if __name__== "__main__":
hello(int(sys.argv[1]), int(sys.argv[2]))
次に、次のコマンドでコードを実行します。
python hello.py 1 1
インデントが壊れています。これで修正されます:
import sys
def hello(a,b):
print 'hello and thats your sum:'
sum=a+b
print sum
if __== "__main__":
hello(sys.argv[1], sys.argv[2])
明らかに、if __name__
ステートメントinsideを関数に指定すると、その関数を実行した場合にのみ評価されます。問題は、このステートメントのポイントは、最初に関数を実行することです。
import sys
def hello(a, b):
print 'hello and that\'s your sum: {0}'.format(a + b)
if __== '__main__':
hello(int(sys.argv[1]), int(sys.argv[2]))
さらに、pythonスクリプトの呼び出し方法に関する@thibautsの回答を参照してください。