3 Posts
오류 해결/코드
오늘 VSC에서 코딩을 하고 있는데 실행을 하니 출력 창에서 오류가 발생하여 해결 방법 몇 가지를 적어놓고자 한다. 1. 코드 앞부분에 import sys를 통해 IOWrapper사용 파일을 열 때 인코딩을 해주는 코드인 것 같다. 아래의 코드를 파일 최상단에 삽입하니 한글로 잘 출력되었다. import sys import io sys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding = 'utf-8') sys.stderr = io.TextIOWrapper(sys.stderr.detach(), encoding = 'utf-8') 2. VSC의 Extensions에서 Code runner를 검색한 다음 Extesion Settings에 들어가 Run in ..
함수 바깥에 전역 변수를 선언하고 함수 내부에서 그 전역 변수의 값을 수정할 때, global 선언을 하지 않아서 발생하는 오류입니다. 개인적으로 변수의 값을 읽어들이는 때에는 문제가 없었던 것 같습니다. 함수 바깥에 있는 전역 변수를 사용하기 전에는 꼭 함수 내부에서 global 선언 후 사용하도록 합시다. 오류의 정확한 내용은 “이 함수 내부에서 선언해서 생성한 적이 없는데 어떻게 사용하는 거임?” 하고 묻는 겁니다. 코드를 아래처럼 짜면 오류가 발생합니다. x = 10 def func(): # 아래 주석처럼 전역변수 선언을 해주지 않으면 오류 발생 # global x x += 1 print(x) func()
string을 string과 더하지 않고 int나 다른 변수와 더했을 때 발생하는 오류처럼 보입니다. + 연산자를 사용할 때에는 더해주는 변수의 자료형을 확인해주도록 합시다.