パーソナルブログメモリ

a = [1, 1]
for _ in "*" * 999: a += [sum(a[-2:])]
print(a)

Python3 エラー20種程度の傾向と対策

2021-08-04 | 速攻で言語マスターしてみませんか

言語をマスターするために必須だけどなかなか紹介されていないのがエラー対策

ここでは思いつくエラーを作ってみます。

100種類ぐらいいけるかなと思いましたが、まったく無理でした。

 

https://colab.research.google.com/drive/14hVs7K0KRb3QFVe16xBnLRTvggpzNElv?usp=sharing

 

 

 

1. NameError: name 'a' is not defined 未定義のものに追加 変数名が長かったり、発音と記述が違う英単語だとあるかも 

2. IndexError: list index out of range リストの範囲外を取得、あらゆる言語で多いエラーです。範囲を確認です。

3. SyntaxError: invalid syntax : 忘れ Pythonだとループとかifの括りの開始に使いますがたまに忘れます。

 

 

 

 

4. TypeError: cannot unpack non-iterable int object パックされていないintを分割しようとしている。データ構造を間違っていたりすると起こります。

5. IndentationError: unexpected indent 想定外の括りのずれ、Python3では括りを同じ位置からのものと定義していて、括りがない場合に開始位置が後ろにずれることはありません。

6. TypeError: can only concatenate str (not "list") to str 文字列に配列を追加できない。普段ありませんが同じ変数名を別の型で使ったりすると起こったりします。

 

 

 

 

7. TypeError: add() takes 2 positional arguments but 3 were given 関数へのパラメータ数が異なる。 関数を変更して受け渡しパラメータを追加したりすると発生します。

8. KeyError: 'A' 辞書型で該当するキーがない a.get("A", -1)とかして取得すればなかった時のデフォルトを指定できます。

 

 

 

(ここから番号は画面にそってズレていきます。)

10. TypeError: __init__() takes 1 positional argument but 2 were given クラスのメソッドには常にselfが入ります。忘れると発生します。

11. TypeError: unsupported operand type(s) for +=: 'set' and 'set' 集合型に += できません。集合型は .addを使います。

 

 

 

12. TypeError: 'int' object is not subscriptable よく [] を余分に足したりして目的の型と違ったりすることがあります。こういった時はprintで並べて表示させたりすると発見しやすいです。

13. NameError: name 'true' is not defined PythonだとTrue Falseです。true falseという言語が多いです。

14. SyntaxError: Missing parentheses in call to 'print'. Did you mean print(3)? Python2だと()いらなかったりします。

 

 

15. TypeError: unsupported operand type(s) for ** or pow(): 'str' and 'int' 文字型を掛算すると繰返しになります。文字型のべき乗はできません

16. TypeError: 'int' object is not iterable forでループする際、回数ならrange(5)です。

17. TypeError: can only concatenate list (not "int") to list 配列と数字を足している。配列に追加する際に[] を忘れるとこうなります。

 

 

20. TypeError: unhashable type: 'set' 集合型に集合型は入れられません。集合型に入れるならタプル型です。

21. ModuleNotFoundError: No module named 'ramdom' モジュールがない。間違いならいいのですが、環境のインストールミスだと少し厄介です。

24. AttributeError: module 'random' has no attribute 'rndint' モジュールのメソッド名を間違っている。

 

 

実際はエラーの行をみて、不自然な所を目視で発見して直すことのほうが多いです。

 

 


最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。