Input/python

파이썬 에러 정리 : SyntaxError, TypeError, ValueError, IndexError

buji-learn 2023. 10. 31. 18:00

SyntaxError

: 구문 오류, 실행 불가

: 대표적으로 괄호/따옴표 여닫는 곳에서 오류 발생

print("큰따옴표 "안에" 큰따옴표")

""" 실행결과
File "----경로----", line 17
    print("큰따옴표 "안에" 큰따옴표")
          ^^^^^^^^^^^^^^^^^^^^^
SyntaxError: invalid syntax. Perhaps you forgot a comma?
"""
print('따옴표 안 닫기)

""" 실행결과
File "----경로----", line 18
    print('따옴표 안 닫기)
          ^
SyntaxError: unterminated string literal (detected at line 18)
"""
# 괄호 안 닫기

print(type('buji-learn'))

""" 실행결과
<class 'str'>
"""

print(type('buji-learn')

""" 실행결과
File "----경로----", line 19
    print(type('buji-learn')
         ^
SyntaxError: '(' was never closed
"""

 

TypeError

: 자료형(type) 오류, 해당 오류 앞부분은 실행

: 연산자와 맞지 않는 자료형을 연산했을 때 오류 발생

print("문자랑 숫자를 더해볼까" + 1)

""" 실행 결과
  File "----경로----", line 38, in <module>
    print("문자랑 숫자를 더해볼까" + 1)
          ~~~~~~~~~~~~~~~^~~
TypeError: can only concatenate str (not "int") to str
a = '1031'
print(type(a))
print(type(int(a)))

""" 실행결과
<class 'str'>
<class 'int'>
"""

b = '일공삼일'
print(type(b))
print(int(type(b)))

""" 실행결과
File "----경로----", line 34, in <module>
    print(int(type(b)))
          ^^^^^^^^^^^^
TypeError: int() argument must be a string, a bytes-like object or a real number, not 'type'
"""

 

ValueError

: 변환할 수 없는 값을 변환하려고 할 때 오류 발생, 해당 오류 앞부분은 실행

print(int('문자열'))

""" 실행결과
Traceback (most recent call last):
  File "---경로---", line 44, in <module>
    print(int('문자열'))
          ^^^^^^^^^^
ValueError: invalid literal for int() with base 10: '문자열'
"""

print(float('문자열'))

""" 실행결과
Traceback (most recent call last):
  File "---경로---", line 45, in <module>
    print(float('문자열'))
          ^^^^^^^^^^^^
ValueError: could not convert string to float: '문자열'
"""

 

IndexError

: 개수가 맞지 않을 때 오류 발생, 해당 오류 앞부분은 실행

list_A = ['A', 'B', 'C']
print(list_A[0])

""" 실행결과
A
"""

print(list_A[3])

"""
File "---경로---", line 74, in <module>
    print(list_A[3])
          ~~~~~~^^^
IndexError: list index out of range
"""

# format() 함수의 indexError

# format() 함수
# "문자열 안에 {} {}".format('"괄호"', '"순서대로"')

print("문자열 안에 {} {}".format('"괄호"', "'순서대로'"))

""" 실행결과
문자열 안에 "괄호" '순서대로'
"""

# CASE 1
# {} 개수 < () 안의 매개변수 개수
print("문자열 {} {}".format(1, 2, 100))

""" 실행결과
문자열 1 2
"""

# CASE 2
# {} 개수 > () 안의 매개변수 개수
print("문자열 {} {} {}".format(1, 2))

""" 실행결과
File "---경로---", line 76, in <module>
    print("문자열 {} {} {}".format(1, 2))
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^
IndexError: Replacement index 2 out of range for positional args tuple
"""

 

 
혼자 공부하는 파이썬
『혼자 공부하는 파이썬』이 더욱 흥미있고 알찬 내용으로 개정되었습니다. 프로그래밍이 정말 처음인 입문자도 따라갈 수 있는 친절한 설명과 단계별 학습은 그대로! 혼자 공부하더라도 체계적으로 계획을 세워 학습할 수 있도록 ‘혼공 계획표’를 새롭게 추가했습니다. 또한 입문자가 자주 물어보는 질문과 오류 해결 방법을 적재적소에 배치하여 예상치 못한 문제에 부딪혀도 좌절하지 않고 끝까지 완독할 수 있도록 도와줍니다. 단순한 문법 암기와 코딩 따라하기에 지쳤다면, 새로운 혼공파와 함께 ‘누적 예제’와 ‘도전 문제’로 프로그래밍의 신세계를 경험해 보세요! 배운 내용을 씹고 뜯고 맛보고 즐기다 보면 응용력은 물론 알고리즘 사고력까지 키워 코딩 실력이 쑥쑥 성장할 것입니다. 이 책은 독학으로 파이썬을 배우는 입문자가 ‘꼭 필요한 내용을 제대로 학습’할 수 있도록 구성했습니다. 뭘 모르는지조차 모르는 입문자의 막연한 마음에 십분 공감하여 과외 선생님이 알려주듯 친절하게, 핵심적인 내용만 콕콕 집어줍니다. 책의 첫 페이지를 펼쳐서 마지막 페이지를 덮을 때까지, 혼자서도 충분히 파이썬을 배울 수 있다는 자신감과 확신이 계속될 것입니다! 베타리더와 함께 입문자에게 맞는 난이도, 분량, 학습 요소 등을 적극 반영했습니다. 어려운 용어와 개념은 한 번 더 풀어쓰고, 복잡한 설명은 눈에 잘 들어오는 그림으로 풀어냈습니다. ‘혼자 공부해 본’ 여러 입문자의 초심과 눈높이가 책 곳곳에 반영된 것이 이 책의 가장 큰 장점입니다.
저자
윤인성
출판
한빛미디어
출판일
2022.06.01