-6
import sys

def Hello(name):
   name = name + '!!!'
   print 'Hello' ,  name


def main():
    Hello(sys.argv[1])


if __name__ == '__main__':
       main()

これがエラーです

Traceback (most recent call last):
  File "D:\pythonPractice\firstPython.py", line 13, in <module>
    main()
  File "D:\pythonPractice\firstPython.py", line 9, in main
    Hello(sys.argv[1])
IndexError: list index out of range

sys.argv [2]も試しましたが、エラーが残ります

4

2 に答える 2

3

まず最初に、あなたが最初に(でHello(sys.argv[0]))投稿したコードはあなたが実際に持っているものではないと思います。を示すエラーと一致しないsys.argv[1]ため、おそらく次のようになります。

def main():
    Hello(sys.argv[1])

エラーに関しては、実行時に引数を指定していないことが原因です。あなたはそうする必要があります、そのようなものsys.argv[1]が存在します:

python helloprog Pax

次のように、より堅牢mainになります。

def main():
    if len(sys.argv) < 2:
        Hello("whoever you are")
    else:
        Hello(sys.argv[1])

これは、引数を指定していないことを検出し、例外を発生させるのではなく、適切なデフォルトを使用します。

于 2012-08-28T07:58:17.523 に答える
1

使用したことがありますか

sys.argv[0]

これはリストを返すため、1より大きい要素がない可能性があります

于 2012-11-27T23:50:36.447 に答える