Pythonでよく起こるエラー10個
今回の講義はPythonのコードを書いていると
よく起こるエラーとその対処方を学びます。
ここまでのレッスンでも短いコードでもよくエラーを
起こしていたので、とっても興味深い講義です。
SyntaxError
構文エラーの際に起こるエラー。つまり、Pythonの文法的に間違っているときに起こります。
def say_hello:
print('みなさん、こんにちは。')
File "<ipython-input-1-95827b095d06>", line 1
def say_hello:
^
SyntaxError: invalid syntax
#正しくは
def say_hello():
print('みなさん、こんにちは。')
NameError
定義していない変数名を使用した場合に起こるエラー。
定義し忘れ、もしくはスペル間違いの時にも起こるエラー。
suzuki
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-3-975d446f10cd> in <module>()
----> 1 suzuki
NameError: name 'suzuki' is not defined
AttributeError
オブジェクトが持っていない属性を使用した際に起こるエラー。
以下の場合、タプルが持っていないappend()関数を使おうとしてエラー。
*タプルはデータの追加がでいない。
a = (1,2,3)
a.append(4)
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-5-c89df70fbf9d> in <module>()
1 a = (1,2,3)
----> 2 a.append(4)
AttributeError: 'tuple' object has no attribute 'append'
TypeError
誤ったデータ型どうしの計算等で起こるエラー。
望んでいるデータ型で計算できなかったり、引数に入れたデータ型が異なっている際に起こります。
100 + '100'
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-6-f94ec5934fa9> in <module>()
----> 1 100 + '100'
TypeError: unsupported operand type(s) for +: 'int' and 'str'
ValueError
誤った値を取っている場合に起こるエラー。
データ型はあっているが、値が間違っていると起こるエラー。
zero(文字列)はint型に変換することはできません。
#int()への変換
int('0') #OK
int('zero') #Error
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-7-085560b0e69e> in <module>()
1 int('0') #OK
----> 2 int('zero') #Error
ValueError: invalid literal for int() with base 10: 'zero'
IndentationError
インデント関係で起こるエラー。インデントが上とあっていなかったり、インデントが無かったりすると起こるエラー。
def say_hello():
print('みなさん、こんにちは1')
print('みなさん、こんにちは2')
File "<ipython-input-8-1e3e573f6a3a>", line 3
print('みなさん、こんにちは2')
^
IndentationError: unexpected indent
IndexError
範囲外のインデックス(要素番号)を指定された場合に起こるエラー。
リストの長さが3番目までなのに4番目を取り出そうとしたときに起こるエラー。
names = ['mike','poul','tarou']
names[3]
#namesは0,1,2までしかデータが無い。
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-11-4f1254315729> in <module>()
1 names = ['mike','poul','tarou']
----> 2 names[3]
IndexError: list index out of range
KeyError
辞書で登録されていないキーを指定した場合に起こるエラー。
定義していないキーで呼び出そうとしたときに起こるエラー。
scores = {'国語':80,'数学':90,'英語':100}
scores['理科']
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-16-0ca58b0464d2> in <module>()
1 scores = {'国語':80,'数学':90,'英語':100}
----> 2 scores['理科']
ModuleNotFoundError
import で指定したモジュールがない場合に起こるエラー。
インストールしてからimportを行えば大丈夫。
import suzuki
---------------------------------------------------------------------------
ModuleNotFoundError Traceback (most recent call last)
<ipython-input-17-dfba4cc1a063> in <module>()
----> 1 import suzuki
ModuleNotFoundError: No module named 'suzuki'
---------------------------------------------------------------------------
FileNotFoundError
指定したファイルが存在しない場合に起こるエラー。
ファイルが存在しないか、ファイル名が間違えているか、フォルダーの指定を間違ったりすると起こるエラー。
file = open('sample.txt')
---------------------------------------------------------------------------
FileNotFoundError Traceback (most recent call last)
<ipython-input-18-f6ba2f8106c2> in <module>()
----> 1 file = open('sample.txt')
FileNotFoundError: [Errno 2] No such file or directory: 'sample.txt'
コメント