PEP8은 파이썬 코드를 작성할 때 지켜야 하는 스타일 가이드입니다. 가독성과 일관성을 높이기 위해 권장되며, 코드의 품질을 향상시키기 위한 기준으로 사용됩니다. PEP8의 주요 규칙들은 다음과 같습니다. 1. 들여쓰기 (Indentation) PEP8에서는 코드 블록을 구분하기 위해 4개의 공백 문자를 사용해 들여쓰기를 합니다. 탭 대신 공백 문자를 사용하는 것이 권장됩니다. 아래 예시에서 foo() 함수는 권장하는 들여쓰기 방법으로 작성되어 있습니다. if문과 else문의 블록은 각각 4개의 공백으로 들여쓰기되어 있습니다. bar() 함수는 들여쓰기가 일관되지 않아 가독성이 떨어집니다. if 문과 else 문에서 들여쓰기에 사용하는 공백의 개수가 다릅니다. baz() 함수는 탭 문자를 사용하여 들여쓰..
1. 변수의 유형 변수는 데이터를 저장하는 메모리 영역의 이름을 말합니다. 파이썬에서는 크게 두 가지 변수 유형이 있습니다. 1.1 전역 변수(Global Variables) 전역 변수는 프로그램 전체에서 접근할 수 있는 변수입니다. 함수 밖에서 정의되어 프로그램 전체에서 사용할 수 있습니다. 1.2 지역 변수(Local Variables) 지역 변수는 함수 내에서만 사용할 수 있는 변수입니다. 함수 외부에서는 접근할 수 없습니다. 1.3 차이 전역 변수와 지역 변수는 변수의 범위(scope)에 따라 구분됩니다. 전역 변수는 프로그램 전체에서 접근할 수 있지만, 지역 변수는 선언된 함수 내에서만 사용할 수 있습니다. 2. 전역 변수 사용법 전역 변수를 선언하려면 함수 밖에서 변수를 정의하면 됩니다. x ..
1. 람다함수란? 파이썬 람다(lambda)함수는 익명 함수(anonymous function)라고도 불리며, 간단한 한 줄짜리 함수를 정의할 때 사용합니다.(익명 함수 : 이름이 없는 함수로, 일회성으로 사용되는 함수) 람다 함수는 def 키워드를 사용한 일반 함수와 달리 lambda키워드를 사용하여 정의합니다. 람다 함수는 주로 filter(), map(), sorted() 등의 함수와 함께 사용되며, 함수 인자로 전달되는 경우가 많습니다. 람다 함수는 간단한 경우에 사용하기 좋지만, 복잡한 로직이나 여러 줄의 코드를 처리하기에는 적합하지 않습니다. 이러한 경우에는 일반적인 함수를 사용하는 것이 좋습니다. 람다 함수는 기본적으로 아래와 같은 구조를 가지고 있습니다. lambda: 람다 함수를 정의하는..
1. 메타프로그래밍이란? 메타프로그래밍이란 코드를 통해 프로그램이 자기 자신이나 다른 프로그램을 다루고 수정하는 기술입니다. 메타프로그래밍을 사용하면 프로그램을 동적으로 생성, 조작 및 수정할 수 있습니다. 파이썬에서는 메타프로그래밍 기술을 통해 코드의 가독성과 재사용성을 높이고, 중복을 줄일 수 있습니다. 2. 주요 메타프로그래밍 기술 2.1 리플렉션 (Reflection) 프로그램이 자신의 구조와 속성을 검사하고 수정할 수 있는 능력입니다. 파이썬에서는 getattr, setattr, hasattr, delattr 등의 내장 함수를 사용하여 객체의 속성을 동적으로 접근할 수 있습니다. class Example: def __init__(self, x): self.x = x example = Exampl..
1. 데코레이터란? 데코레이터(decorator)는 함수나 메서드에 적용되어, 해당 함수나 메서드의 기능을 확장하거나 변경하는 역할을 합니다. 데코레이터는 일반적을@기호와 함께 사용되며, 함수 또는 메서드 위에 위치합니다. 데코레이터는 기본적으로 함수를 인자로 받고, 또 다른 함수를 반환하는 고차 함수(higher-order function)입니다. 1.1 데코레이터 작동 원리 my_decorator 함수는 데코레이터 함수로 hello 함수를 인자로 받아 wrapper 함수를 반환합니다. decorated_hello를 호출하면 데코레이터가 추가한 내용과 함께 hello 함수의 내용이 출력됩니다. def my_decorator(func): def wrapper(): print("데코레이터가 추가한 내용")..
1. 내포(comprehension)란? 내포(comprehension)는 간결하고 효율적인 방식으로 리스트, 집합, 딕셔너리을 생성할 수 있는 기능입니다. 이 기능을 사용하면 for문과 조건문을 사용한 코드를 더 간결하게 표현할 수 있습니다. 내포를 사용할 때 주의 할점이 있습니다. 코드가 너무 복잡해지거나 가독성이 떨어진다면 일반적인 반복문과 조건문을 사용하는 것이 좋습니다. 2. 리스트 내포(list comprehension) 리스트 내포는 아래와 같은 기본 구조를 가지고 있습니다. expression: 각 항목에 적용할 표현식입니다. item: 반복자(iterable)에서 가져온 항목입니다. iterable: 반복 가능한 객체입니다. condition: 항목에 대한 조건문입니다. 조건문은 생략 가..
1. 파이썬 축약 구문 파이썬의 축약 구문은 반복문과 조건문을 사용하지 않고도 순회 가능한 객체(리스트, 집합, 딕셔너리 등)에서 특정 조건에 맞는 값을 간결하게 추출할 수 있는 문법이다. 축약 구문을 이해하기 위해서는 리스트, 집합, 딕셔너리에 대한 이해가 필요하다. 자세한 내용은 링크를 통해 확인 할 수 있다. 리스트[링크], 집합[링크], 딕셔너리[링크] [expression for item in iterable if condition] expression: 리스트의 각 요소를 변환하는 과정에서 사용되는 표현식 item: 각 요소 iterable: 순회 가능한 객체 (리스트, 튜플, 문자열, 집합, 딕셔너리 등) condition: 각 값에 대한 조건 2. 리스트 축약 구문 리스트에서는 다음과 같이..
얕은 복사(shallow copy) 얕은 복사(shallow copy)는 변수의 내용을 복사하지만, 가리키는 객체(object)를 공유합니다. 그러므로, 얕은 복사를 통해 복사한 변수의 값을 변경하면, 원본 변수에 영향을 미칩니다. >>> list_example = [1, 2, 3, 4, 5] >>> shallow_copy_example = list_example >>> shallow_copy_example[2] = 10 >>> list_example [1, 2, 10, 4, 5] 위의 코드에서, list_example은 [1, 2, 3, 4, 5]의 리스트를 가리킵니다. list_example을 shallow_copy_example에 얕은 복사를 했습니다. 얕은 복사는 가리키는 객체를 공유하기 때문에 ..
☞ 문서의 내용은 가장 하단 참고문헌 및 사이트를 참고하여 필자가 보기 쉽도록 정리한 내용입니다. ☞ 틀린 내용 및 저작권 관련 문의가 있는 경우 문의하시면 수정 및 삭제 조치하겠습니다. PyCharm에서 PyQt5를 실행하려고 할 때 아래와 같은 오류가 발생했다. 필자는 3가지 방법을 시도해보았고 마지막 세 번째 방법으로 해결했다. This application failed to start because it could not find or load the Qt platform plugin "windows" in "". Reinstalling the application may fix this problem. 첫 번째 : 환경변수로 QT 플러그인 경로를 넣어줬다. Error를 구글링해보니 여러가지 해결..