Python 無料で独習 017 Pythonでよく起こるエラー 

Python
この記事は約8分で読めます。

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'

コメント

タイトルとURLをコピーしました