[코딩의 기술] 7. range보다는 enumerate를 사용하라
◎ Python/코딩의 기술 (책)2023. 4. 30. 18:31[코딩의 기술] 7. range보다는 enumerate를 사용하라

range range는 어떤 정수 집합을 반복해야 하는 과정이 필요할 때 유용하다. from random import randint random_bits = 0 for i in range(32): if randint(0, 1): random_bits |= 1 > 0b11001000000001100000010110010 위 코드는 실행할 때 마다 랜덤한 값이 나온다. 9번째 줄에 있는 randint 덕분에 random_bits |= 1 > 1: 빨강 2: 파랑 3: 노랑 4: 초록 허나 위 코드는 조금은 투박해 보인다. 몇 번째 원소를 접근 중인지 알기 위해 리스트의 크기를 알아야 하고, 인덱싱을 사용해 배열 원소에 접근해야 한다. 코드가 짧으니 알아보기 쉽겠지만 단계가 많아 나중에 코드가 길어지면 읽기 ..

[코딩의 기술] 6. 인덱스보다는 대입을 사용해 데이터를 언패킹하자
◎ Python/코딩의 기술 (책)2022. 11. 30. 18:52[코딩의 기술] 6. 인덱스보다는 대입을 사용해 데이터를 언패킹하자

파이썬에는 값으로 이루어진 불변 순서쌍을 만들어낼 수 있는 tuple 내장 타입이 존재한다. 튜플은 숫자 인덱스를 사용해 접근할 수 있고, 인덱스를 통해 새 값을 대입하는 식으로 튜플을 변경할 수는 없다. 언패킹(unpacking) 파이썬에는 언패킹(unpacking)구문이 존재한다. 언패킹 구문을 사용하면 한 문장 안에서 여러 값을 대입할 수 있다. 언패킹 구문에 사용된 패턴은 튜플을 변경하려고 시도할 때 사용한 구문, 즉 파이썬이 허용하지 않았던 구문과 비슷하지만 매우 다르게 작동한다. 예를 들어 튜플이 쌍이라는 사실을 알고 있으면 인덱스를 사용해 각 값에 접근하는 대신 이 튜플을 두 변수 이름으로 이루어진 튜플에 대입할 수 있다. item = ('호박엿', '식혜') first, second = i..

[코딩의 기술] 5. 복잡한 식을 쓰는 대신 도우미(헬퍼) 함수를 작성하자
◎ Python/코딩의 기술 (책)2022. 11. 29. 22:13[코딩의 기술] 5. 복잡한 식을 쓰는 대신 도우미(헬퍼) 함수를 작성하자

들어가며 파이썬의 특출난 장점 중 하나로 간결한 문법이 있다. 이를 활용해 많은 로직을 표현식 한 줄로 작성할 수 있는데, 예를 들어 URL에서 쿼리 문자열(질의 문자열)을 구문 분석해야 한다고 가정하자. 여기서 각 질의 문자열 파라미터는 정수 값을 표현한다. (urllib를 다뤄보지 않았어도 대충 문법만 참고해보자.) 다음 예에서 각 쿼리 문자열 파라미터는 정수 값을 표현한다. from urllib.parse import parse_qs my_values = parse_qs('red=5&blue=0&green=', keep_blank_values=True) print(repr(my_values)) # repr 함수는 https://wikidocs.net/134994를 참고하자. >>> {'red': [..

[코딩의 기술] 4. f-문자열을 통한 인터폴레이션을 사용하라
◎ Python/코딩의 기술 (책)2022. 11. 28. 23:43[코딩의 기술] 4. f-문자열을 통한 인터폴레이션을 사용하라

파이썬 코드에서 문자열은 자주 사용된다. 메세지를 표시하거나, 데이터를 쓰거나, Exception에 자세히 기록하거나, 디버깅을 할 때 등등. 형식화, formatting, 포맷팅 형식화(formatting)는 미리 정의된 문자열에 데이터 값을 끼워 넣어 사람이 보기 좋은 문자열로 저장하는 과정이다. 파이썬에서는 언어에 내장된 기능과 표준 라이브러리를 통해 네 가지 방식으로 형식화를 할 수 있다. 그러나 한 가지 방법을 제외한 나머지는 모두 치명적인 단점이 존재한다. % 형식화 파이썬에서 문자열을 형식화하는 가장 일반적인 방법은 % 형식화 연산자를 사용하는 것이다. 이 연산자 왼쪽에 들어가는 미리 정의된 텍스트 템플릿을 형식 문자열이라 한다. 템플릿에 끼워 넣을 값들은 연산자의 오른쪽에 단일 값이나 tu..

[코딩의 기술] 3. bytes와 str의 차이를 알자
◎ Python/코딩의 기술 (책)2022. 11. 27. 21:55[코딩의 기술] 3. bytes와 str의 차이를 알자

bytes와 str의 차이는? 파이썬에는 문자열 데이터의 시퀀스를 표현하는 두 가지 타입이 있다. 바로 bytes와 str이다. 아래 코드처럼 bytes 타입의 인스턴스에는 부호가 없는 8바이트 데이터가 그대로 들어간다. (종종 아스키 인코딩을 사용해 내부 문자를 표시한다.) a = b'h\x65llo' print(list(a)) print(a) >>> [104, 101, 108, 108, 111] b'hello' 위 코드에서 \x65는 e를 의미한다. 그리고 b 뒤에 ' '(작은따옴표)나 " "(큰따옴표)를 붙이면 바이트(bytes) 객체가 된다. 그래서 리스트로 변환 시 bytes가 출력된다. str 인스턴스에는 사람이 사용하는 언어의 문자를 표현하는 유니코드 코드 포인트(code point)가 들어..

[코딩의 기술] 2. PEP 8 스타일 가이드를 따르자
◎ Python/코딩의 기술 (책)2022. 9. 15. 13:17[코딩의 기술] 2. PEP 8 스타일 가이드를 따르자

PEP 8 PEP은 파이썬 개선 제안서(Python Engahncement Proposal)다. 아마 8번째 문서라 8이 붙은 것 같다. 즉 PEP8은 파이썬 코드를 어떻게 구성할지 알려주는 스타일 가이드다. 물론 문법만 맞춰도 프로그램이 실행되지만, 일관성 있는 스타일을 사용하면 유지보수가 더욱 쉬워지고 가독성도 높아진다. 다양한 프로젝트에서 협업할 때에도 스타일 가이드를 따르면 좋다. PEP 8에는 파이썬 코드를 명확하게 작성하기 위한 방법이 자세히 나와 있다. 전체 가이드는 이 링크에서 볼 수 있다. 반드시 따라야 하는 몇 가지 규칙은 다음과 같다. 화이트스페이스(whitespace) 파이썬에서 화이트스페이스(공백)는 문법적으로 의미가 있다. 특히 파이썬은 코드의 명료성 때문에 공백의 영향에 민감한..

[코딩의 기술] 1. 사용 중인 파이썬의 버전을 알자
◎ Python/코딩의 기술 (책)2022. 9. 14. 12:50[코딩의 기술] 1. 사용 중인 파이썬의 버전을 알자

사용 중인 파이썬의 버전을 정확히 알아내려면 --version 플래그를 이용하면 된다. $ python --version Python 3.10.6 파이썬 3은 보통 python3 명령으로 사용한다. 허나 본문의 예제에서는 정상적으로 파이썬의 버전이 출력되지만 본인의 경우에는 Python이라는 글자만 나오기에 정확한 정보인지는 잘 모르겠다. 파이썬에 내장된 sys모듈 안의 값을 조사해 현재 런타임에 사용 중인 파이썬의 버전을 알아낼 수도 있다. import sys print(sys.version_info, end="\n\n") print(sys.version) >>> sys.version_info(major=3, minor=10, micro=6, releaselevel='final', serial=0) 3..

image