エラー:リスト 二次元配列でハマった話
8日目 昨日の解説(テトリス3日目)
二次元配列でフィールドを定義
field = [
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0],
[0,0,0,0,0,0,0,0,0,0]]
壁の認識のために壁を作る
field = [
[1,0,0,0,0,0,0,0,0,0,0.1],
[1,0,0,0,0,0,0,0,0,0,0.1],
[1,0,0,0,0,0,0,0,0,0,0.1],
[1,0,0,0,0,0,0,0,0,0,0.1],
[1,0,0,0,0,0,0,0,0,0,0.1],
[1,0,0,0,0,0,0,0,0,0,0.1],
[1,0,0,0,0,0,0,0,0,0,0.1],
[1,0,0,0,0,0,0,0,0,0,0.1],
[1,1,1,1,1,1,1,1,1,1,1,1]]
この時点で間違えています。どこでしょう?
これだけではエラーが出ないので気づかず、このまま先に進めていくと処理する時に配列の個数や値が違っているのでエラーになります。
この間違いに気がつくまで丸一日時間を無駄にしました。
詳しく解説:
例えば、
x = [0,1,2] のリストの場合
print(x) で
0, 1, 2 と表示され、3つの数値の配列になる
x = [0.1,2] のリストの場合
👆ここが間違えてました
print(x) で
0.1, 2 と表示され、2つの数値の配列になる
本来、エラーとして表示されるべきだったのですが2つの数値として認識しているのでエラーにならず壁を突き抜ける結果がでました。
「,」コンマと「.」小数点を誤って入力していたことに気が付かずもやもやしていました。
従って
x = [0.1.2] のリストの場合は、この時点で
👆こんな小数点の連続する数字は存在しないので
SyntaxError: invalid syntax (構文が間違ってる)
となります。
文責:Reyl