python IndexErrorの対処法
Raspberry Piでservoモーターを動かしたいと思っています。
以下のコードを動かすとエラーが出ました。
import wirignpi
import sys
param = sys.argv #コマンドライン引数を格納したリストの取得コード
if( -90<=int(param[1]) and int(param[1])<=90 ):
set_degree = int(param[1]) #入力された値を配列
print(set_degree) #値をコマンドラインで表示
else:
print("please input -90~90 degree\n")
以下のエラー文が出されました。
Traceback (most recent call last):
File "servo.py", line 13, in <module>
if( -90<=int(param[1]) and int(param[1])<=90 ):
IndexError: list index out of range
どのように対応すればよいでしょうか。
よろしくお願いします。
追伸1:
「引数の数」をチェックしてみました。
import sys
args = sys.argv
arglen = len(args)
print(arglen)
print(args)
print(args[1])
print(args[2])
print(args[3])
quit()
実効してみると以下の反応でした。
$python3 a.py a b c
4
['a.py', 'a', 'b', 'c']
a
b
c
追伸2:
エラーの原因が分かりました。
コマンドラインに引数を入れるのを忘れていました。
$sudo python3 servo.py
ではなく、
$sudo python3 servo.py 45
とすべきでした。
ご協力ありがとうございます。