Pythonでよく出るエラーメッセージとその解決方法

Pythonでよく出るエラーメッセージとその解決方法をまとめてみました。


TypeError: can only concatenate str (not “int”) to str

error1.py
'1' + 1
実行
python error1.py 
Traceback (most recent call last):
  File "error1.py", line 1, in 
    '1' + 1
TypeError: can only concatenate str (not "int") to str

strとintは結合できません。

修正版
'1' + '1'

TypeError: unsupported operand type(s) for +: ‘int’ and ‘str’

error2.py
1 + '1'
実行
python error2.py 
Traceback (most recent call last):
  File "error2.py", line 1, in 
    1 + '1'
TypeError: unsupported operand type(s) for +: 'int' and 'str'

intとstrの結合はできません。

修正版
1 + 1

IndentationError: unexpected indent

error3.py
num = 1
    print(num)
実行
python error3.py 
  File "error3.py", line 2
    print(num)
    ^
IndentationError: unexpected indent

予期しないインデントが存在しています。

修正版
num = 1
print(num)

SyntaxError: EOL while scanning string literal

error4.py
print('aaa)
実行
python error4.py 
  File "error4.py", line 1
    print('aaa)
              ^
SyntaxError: EOL while scanning string literal

‘や”が閉じられていません。

修正版
print('aaa')

AttributeError: ‘int’ object has no attribute ‘append’

error5.py
mylist = 1
mylist.append(2)
実行
python error5.py 
Traceback (most recent call last):
  File "error5.py", line 2, in 
    mylist.append(2)
AttributeError: 'int' object has no attribute 'append'

「’int’ object」 = 「mylist」はappend属性を持っていません。

修正版
mylist = [1]
mylist.append(2)

TypeError: myfunc() missing 1 required positional argument: ‘arg2’

error6.py
def myfunc(arg1, arg2):
    print(arg1, arg2)

myfunc(1)
実行
python error6.py 
Traceback (most recent call last):
  File "error6.py", line 4, in 
    myfunc(1)
TypeError: myfunc() missing 1 required positional argument: 'arg2'

必要な引数’arg2’が指定されていません。

修正版
def myfunc(arg1, arg2):
    print(arg1, arg2)

myfunc(1, 2)

TypeError: myfunc() takes 2 positional arguments but 3 were given

error7.py
def myfunc(arg1, arg2):
    print(arg1, arg2)

myfunc(1, 2, 3)
実行
python error7.py 
Traceback (most recent call last):
  File "error7.py", line 4, in 
    myfunc(1, 2, 3)
TypeError: myfunc() takes 2 positional arguments but 3 were given

引数2つの関数に3つの引数を与えています。

修正版
def myfunc(arg1, arg2):
    print(arg1, arg2)

myfunc(1, 2)

IndexError: list index out of range

error8.py
mylist = [1, 2, 3]
print(mylist[3])
実行
python error8.py 
Traceback (most recent call last):
  File "error8.py", line 2, in 
    print(mylist[3])
IndexError: list index out of range

指定したindexは存在しません。

修正版
mylist = [1, 2, 3]
print(mylist[2])

KeyError: ‘d’

error9.py
mydict = {'a': 1, 'b': 2, 'c': 3}
print(mydict['d'])
実行
python error9.py 
Traceback (most recent call last):
  File "error9.py", line 2, in 
    print(mydict['d'])
KeyError: 'd'

指定したキーは存在しません。

修正版
mydict = {'a': 1, 'b': 2, 'c': 3}
print(mydict['c'])

 
 

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です