Study/Python9 [Python] itertools 라이브러리 사용법 (조합, 순열, 데카르트 곱) Python의 'itertools' 라이브러리는 간단하게 조합, 순열, 데카르트 곱을 구할 수 있는 라이브러리입니다. 이번 포스팅에서는 itertools의 각 함수가 어떻게 동작하는지 살펴보고, 활용 예제를 통해 이해해보겠습니다.📌 순열(permutations) 순열은 주어진 리스트에서 요소들의 가능한 모든 순서를 계산합니다. 코드from itertools import permutationsdata = ['A', 'B', 'C']result = list(permutations(data, 2)) # 2개씩 순서 있게 뽑기print(result)결과[('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C'), ('C', 'A'), ('C', 'B')]📌 조합(combinatio.. 2024. 11. 13. [Python] 출력 성능 비교: 매번 출력 vs 결과 저장 후 한 번에 출력 파이썬에서 대량의 데이터를 출력할 때, 두 가지 주요 접근 방식이 있습니다.첫째는 반복문 안에서 매번 출력을 하는 것이고, 둘째는 데이터를 먼저 저장한 후 한 번에 출력하는 것입니다. 이번 포스팅에서는 이 두 가지 방법의 성능을 비교해 보겠습니다.반복문 안에서 매번 출력하는 경우import time# 매번 출력하는 경우start_time = time.time()for i in range(50000): print(i)end_time = time.time()print(f"매번 출력하는 시간: {end_time - start_time:.4f}초") 2초 가량 걸렸네요! print만 했는데도 생각보다 꽤 걸렸습니다.결과 저장 후 한 번에 출력하는 경우import time# 결과 저장 후 한 번에 출력하는 .. 2024. 9. 10. [Python] 비트 연산 이번 포스트에서는 사람이 사용하는 사칙연산(+, *, /, -)이 아닌, 컴퓨터가 사용하는 연산인 "비트 연산"을 이해해볼 것입니다. 컴퓨터의 CPU는 0과 1로 다루어 동작되며, 내부적으로는 비트 연산을 사용하여 덧셈, 뺄셈, 곱셈 등을 계산합니다.이러한 비트 연산을 파이썬에서 사용하기 위해 비트 연산자와 그 기능에 대해 알아보도록 해요!비트 연산자의 종류AND (&)OR (|)XOR (^) NOT (~) Shift (>)AND 연산자 (&)AND 연산자는 두 비트가 모두 1일 때만 결과가 1이 되며, 그 외의 경우에는 0이 됩니다.a = 0b1101 # 13b = 0b1011 # 11result = a & b # 0b1001 (9)OR 연산자 (|) OR 연산자는 두 비트 중 하나라도 1이면 결.. 2024. 8. 31. [Python] 컴퓨터가 음수를 관리하는 방법 (2의 보수) 본 포스트에서는 컴퓨터가 음수를 관리하는 방법에 대해 이야기해 볼 것입니다.컴퓨터는 음수를 "2의 보수"로 관리합니다.2의 보수라니.. 굉장히 생소하죠? 2의 보수가 무엇이고, 컴퓨터는 이것을 어떻게 이용하여 음수를 표현하는지 지금 바로 알아보도록 하죠!2의 보수(Two's Complement)란?수학적인 복잡한 것들은 일단 넘어가고, 쉽게 한 마디로 정의해보자면 이렇습니다!2의 보수란 이진수 체계에서 음수를 표현하는 방법 중 하나입니다. 왜 2의 보수를 사용하여 음수를 관리할까? 1. 연산의 효율성컴퓨터에게 뺄셈은 덧셈보다 더 복잡한 연산입니다.이 때, 2의 보수를 사용하면 뺄셈을 덧셈으로 변환할 수 있습니다.예를 들면, 7 - 5 연산을 7 + (-5) 연산으로 단순화할 수 있습니다.이렇게 하면, 컴.. 2024. 8. 31. [Python] 예외(exception)와 예외처리(exception handling) 이번 포스팅은 파이썬에서 발생할 수 있는 예외의 종류와, 이러한 예외들을 처리할 수 있는 예외처리 기법에 대해 공부한 내용을 정리한 것입니다. 예외처리는 코드에서 에러가 발생했을 때 어떠한 액션을 취하게 만들기 위한 기술로, 다양한 상황에서 유용하게 사용될 수 있습니다.예외 (Exception)프로그래밍에서 예외는 "프로그램 실행 중에 감지되는 에러"를 의미합니다.파이썬에 내장되어 있는 예외 상황은 다음과 같습니다. ZeroDivisionError: 나누기 또는 모듈로 연산의 두 번째 인자가 0일 때 발생10/0 # ZeroDivisionErorr: division by zero NameError: 지역 또는 전역 이름을 찾을 수 없을 때 발생print(name_error)# NameError: name.. 2024. 8. 8. [Python] 패킹(packing), 언패킹(unpacking) 이번 포스팅은 파이썬의 packing, unpacking 기법에 대해 공부한 내용을 정리한 것입니다. 파이썬을 보다 편리하게 만들어주는 기술 중 하나인데요, 알고 있으면 코드를 더 간결하게 짤 수 있게 됩니다.Packing패킹의 경우 *를 사용하여 수행할 수 있습니다.numbers = [1,2,3,4,5]a, *b, c = numbersprint(a) # 1print(b) # [2, 3, 4]print(c) # 5 위와 같이 b에 *를 붙이게 되면, *b는 직접 변수로 명시된 a, c를 제외한 나머지 원소들을 모두 리스트로 패킹하여 할당 받게 됩니다.Unpacking언패킹의 경우 일반적으로 *, ** 두 가지를 사용합니다. 1) *를 활용한 언패킹def my_func(x, y, z): prin.. 2024. 7. 31. [Python] 문자열 탐색 메서드 index(), find() 비교 본 포스트에서는 파이썬에서 문자열을 탐색하는 메서드인 index()와 find()를 비교해보겠습니다. 파이썬을 처음부터 복습하며 기초를 다지던 중 문자열 메서드에서 흥미로운 부분을 발견했습니다.그것은 바로 index()와 find()인데요, 두 메서드는 같은 기능을 갖고 있지만 특정 상황에 반환되는 값이 다릅니다.언제 쓰일까?파이썬에서 문자열은 시퀀스 데이터 구조로, 문자열 내 각 글자 하나하나가 고유한 인덱스(번호)를 갖고 있습니다.그렇기 때문에 코딩을 하다보면 이럴 때가 있습니다.저 문자열 안에 'h'라는 글자가 몇 번째 인덱스에 있는지 궁금한데 어떻게 찾지?반복문, 조건문을 써서 찾아야하나..? 위와 같은 상황에서 우리는 index(), find()라는 문자열 탐색 메서드를 사용할 수 있습니다.st.. 2024. 7. 29. [Python] Style Guide 본 포스트에서는 파이썬을 실제 업무에 사용할 때, 일반적으로 지키는 암묵적인 코딩 룰에 대해 이야기해보려 합니다.이러한 룰을 스타일 가이드라고 말하는데요, 크게 5가지를 들 수 있겠습니다.변수명은 무엇을 위한 변수인지 직관적인 이름을 가져야 함공백(spaces) 4칸을 사용하여 코드 블록을 들여쓰기한 줄의 길이는 79자로 제한하며, 길어질 경우 줄 바꿈을 사용문자와 밑줄(_)을 사용하여 함수, 변수, 속성의 이름을 작성함수 정의나 클래스 정의 등의 블록 사이에는 빈 줄을 추가변수명은 무엇을 위한 변수인지 직관적인 이름을 가져야 함a = 3000 어떤 사람의 코드를 읽었는데, 저런 변수가 있다고 해봅시다.a가 어떤 역할을 하는 변수인지 유추할 수 있을까요? 아마 코드를 다 읽지 않으면 알 수 없을 것입니다.. 2024. 7. 15. 이전 1 2 다음