2016-06-16 10 views
0

Pythonインタプリタは、構文エラーを与える:構文エラー(sys.argvの)

import sys 

if len(sys.argv) == 3: 
    a=sys.argv[1] 
    b=sys.argv[2] 
    sum=int(a) + int(b) 
    print "The sum is: ", sum 
elif len(sys.argv) != 3: 
    print "Only two arguments allowed !" 
else: 
    print "Please enter two numbers as argument with the script. Try again !" 

エラー:

[email protected]:~/python$ ./sumtwo.py 5 10 
./sumtwo.py: line 3: syntax error near unexpected token `sys.argv' 
./sumtwo.py: line 3: `if len(sys.argv) == 3:' 
+3

ファイルは、Pythonインタプリタではなく、シェルによって解釈されます。 'python sumtwo.py'を試してみるか、ファイルの最初のファイルとして'#!python'を追加してください。 –

+1

ロガルスキはそれを手に入れました。これは幾分接線ですが、あなたの 'if'と' elif'節は全ての可能性をカバーします - len(sys.argv)は== 3か!= 3でなければなりません。elseは決してトリガーされません。 –

答えて

2

あなたのファイルはシェルではなく、Pythonインタプリタによって解釈されます。それを実行するときに、バイナリを指定してみてください:

[email protected]:~/python$ python sumtwo.py 5 10 

また、あなたがスクリプトの最初の行としてshebangを追加することができます。

#!/usr/bin/python 
import sys 

if len(sys.argv) == 3: 
    a=sys.argv[1] 
    b=sys.argv[2] 
    sum=int(a) + int(b) 
    print "The sum is: ", sum 
elif len(sys.argv) != 3: 
    print "Only two arguments allowed !" 
else: 
    print "Please enter two numbers as argument with the script. Try again !"