python | TypeError: 'str' object does not support item assignment
·
TIL/오류해결
TypeError: 'str' object does not support item assignment string은 아이템 수정이 불가능하다는 뜻이다. 문자열은 인덱스로 접근도 가능하고 리스트와 같이 슬라이싱도 가능하다. 그럼 text의 1번 요소인 e를 a로 바꿔 'hallo'라는 결과를 얻을 수 있을까? 불가능하다. 도대체 assignment의 뜻이 뭐길래 이런 에러가 발생하는 것일까. 궁금해서 직접 검색해 보았다. 에러 메시지에서 assignment는 2번 '배정, 배치'를 의미하는 것으로 보인다. 즉, TypeError: 'str' object does not support item assignment = 문자열에서는 아이템 배치를 지원하지 않는다. 문자열 수정을 위해 리스트처럼 인덱스로 접근은 ..
python | UnboundLocalError: local variable referenced before assignment
·
TIL/오류해결
UnboundLocalError가 발생하는 이유는 함수 밖에서 선언한 변수를 함수 내에서 사용했기 때문이다. 함수 내에서 사용했다는 의미가 무엇이냐 하면, 함수 func() 밖에서 x라는 변수를 선언하고 1을 변수 x의 값으로 부여했다. 그다음 함수를 정의하는 과정에서 함수 밖에 위치한 변수인 x를 사용하였다. line by line으로 실행되니 먼저 실행되는 x=1 다음에 함수를 정의해 주었으니 문제 될 것이 없지 않느냐라고 생각할 수도 있다. 하지만 에러메시지를 보면 이 말은 잘못됨을 알 수 있다. local variable 'x' referenced before assignment = 함수 내에서 값을 할당하려고 보니 '지역변수' x가 참조되었습니다. 이런 의미이다. 그러므로 x는 먼저 작성된 코드..
python | module 'math' has no attribute 'lcm'
·
TIL/오류해결
프로그래머스 문제를 푸는 과정에서 최소공배수가 필요하여 math.lcm을 사용했으나 attributeerror: module 'math' has no attribute 'lcm' 와 같은 오류가 발생하였다. lcm은 python 3.9 버전부터 사용이 가능한 메소드이기 때문에 이럴 때에는 다른 방법으로 최소공배수를 구해야 한다. 두 수가 주어졌을 때 최소공배수는 두 수의 곱을 최대공약수로 나누어 구할 수 있다. $$ lcm(a, b) = \frac{a \times b}{gcd(a, b)} $$ 예를 들어, 6과 4의 최소공배수를 구하면 다음과 같다. 1) 두 수의 곱 $ 6 \times 4 = 24 $ 2) 두 수의 최대공약수 $ gcd(6, 4) = 2 $ 3) 두 수의 최소공배수 $ \frac{24}..
Docker | Docker Desktop 설치 및 Docker Desktop requries a newer WSL kernel version 해결 방법
·
TIL/오류해결
Window 10 Home 환경에서 Docker desktop을 설치하면서 겪은 오류와 어떻게 해결했는지 남기고 같은 오류를 겪는 사람들을 위해 조금이라도 도움이 되었으면 하는 마음으로 글을 작성한다. Docker toolbox는 이제 더 이상 설치가 불가능하다. 그렇기 때문에 Docker desktop으로 설치해야 한다.구글에 'docker toolbox'를 검색하면 페이지에 대한 정보가 없다는 메시지를 통해 더 이상 지원하지 않음을 알 수 있다.또한, toolbox 링크를 클릭하면 두번째 사진처럼 자동으로 Docker desktop 설치 페이지로 전환되니 아래 과정을 따라오면 쉽게 설치할 수 있다.페이지에서 아래로 스크롤하면 Install Docker Desktop 메뉴를 볼 수 있으며, 사용하고 있..