본문 바로가기

Python

[파이썬] 에러의 종류 파이썬에서 에러의 종류 1. Syntax Error (문법 오류) 코드의 문법적인 구조가 잘못되어 발생하는 오류입니다. 2. Logic Error (논리 오류) 프로그램 실행 중에 발생하는 오류로, 프로그램이 비정상적으로 종료되는 오류입니다. 주로 프로그램의 논리나 알고리즘이 잘못된 경우에 발생합니다. 3. Exception Error (예외 오류) 코드를 실행하는 중에 발생하는 에러입니다. try ~ except 문을 사용하여 예외를 처리할 수 있습니다. try: # 예외가 발생할 수 있는 코드 except SpecificExceptionType as e: # 구체적인 예외 처리 except AnotherSpecificExceptionType as e: # 다른 특정 예외 처리 except Except.. 더보기
[파이썬] Singleton Pattern 싱글톤 패턴(Singleton Pattern)class SingletonClass: inst = None def __new__(cls): if cls.inst is None: cls.inst = object.__new__(cls) return cls.inst def aa(self): print('난 메소드야')위 코드에서 SingletonClass는 싱글톤 패턴을 구현한 클래스입니다. 이 클래스는 inst라는 클래스 레벨 변수를 가지고 있습니다. __new__ 메서드를 오버라이드하여 이미 인스턴스가 존재하는지 확인하고, 존재하지 않는 경우에만 새로운 인스턴스를 생성합니다. +) cls는 파이썬에서  "클.. 더보기
[파이썬] 클래스 상속 클래스에서 상속을 사용하면 코드를 재사용하고 확장할 수 있기에 클래스의 상속은 기존 클래스의 특성과 동작을 다른 클래스에서 사용할 수 있게 해주는 중요한 개념입니다. 클래스 상속의 특성 클래스들간의 특성공유 코드 수정시 부모 클래스만 수정하면, 자식 클래스들이 자동적으로 업데이트 class 부모클래스: # 부모클래스의 속성과 메서드 정의 class 자식클래스(부모클래스): # 자식클래스에만 해당하는 추가적인 속성과 메서드 정의 파이썬에서 클래스 상속을 구현하는 기본적인 방법 부모클래스는 상속될 클래스를 의미하고, 자식클래스는 상속받는 클래스를 의미합니다. 자식클래스는 부모클래스의 모든 속성과 메서드를 상속받습니다. 클래스 상속 예시1) 학생 정보 출력하기 # student 클래스 정의 class stud.. 더보기
[파이썬] 클래스 클래스란? 클래스는 객체를 표현하기 위한 틀 또는 청사진으로, 특정한 개념이나 모양을 가진 객체를 생성하는데 사용됩니다. 객체 지향 프로그래밍 언어는 이러한 클래스와 객체를 중심으로 프로그래밍하는 패러다임을 가지고 있습니다. 여기서 클래스는 속성과 메소드로 구성됩니다. -속성 (Attributes): 객체의 상태나 특징을 나타내는 데이터입니다. 이는 클래스 내부에 정의된 변수로 나타납니다. 예를 들어, 게임 캐릭터의 경우 힘, 민첩성, 체력 등이 속성에 해당합니다. -메소드 (Methods): 객체의 동작이나 행위를 나타내는 코드 블록입니다. 이는 클래스 내부에 정의된 함수로 나타납니다. 예를 들어, 게임 캐릭터의 경우 공격, 이동, 스킬 사용 등이 메소드에 해당합니다. 예시로 게임의 직업 클래스를 생각.. 더보기
[파이썬] Lambda 함수 일급 함수 파이썬은 일급 객체를 지원하는 일급 함수를 사용합니다. 일급 함수는 함수 안에 함수를 선언 가능하고, 함수를 인자로 전달하거나 반환값으로 함수를 사용할 수 있습니다. 람다 함수 람다 함수는 이름이 없는 한 줄짜리 함수로, 간단한 함수를 간결하게 표현할 때 사용됩니다. 즉, def를 사용해야 될 정도로 함수의 내용이 복잡하지 않거나, def를 사용할 수 없는 상황일 때, 람다를 적용합니다. 람다 함수는 lambda 키워드를 사용하여 정의합니다. (lambda x, y: x + y)(1, 2) 람다함수 예시 람다 함수도 가변 인수를 받을 수 있습니다. 예를 들어, lambda a, *args, **kwargs: ...와 같이 사용할 수 있습니다. 리스트에 람다 함수를 저장하여 나중에 사용할 수 있.. 더보기
[파이썬] 클로저(Closure) 클로저(Closure) 클로저는 scope에 제약을 받지 않는 변수들을 포함하고 있는 코드 블럭입니다. 클로저를 사용해서 함수 내에서 선언한 지역변수를 함수 밖에서 사용할 수 있습니다. def outer(): count=0 def inner(): nonlocal count #수준이 out 함수의 수준이 되므로 밑에서 out을 했을때 잘 실행이 된다. count+=1 return count return inner #내부 함수의 주소를 반환-클로저 var1=outer() print(var1) print(var1()) print(var1()) print(var1()) print(var1()) print() var2=outer() print(var2()) print(var2()) print(id(var1),' .. 더보기
[파이썬] 함수 내 매개변수 변수의 생존 범위 : global, local Local > Enclosing function > Global > Builtin 전역변수(Global Variables)의 경우 모듈 어디서나 접근 가능한 반면, 지역변수(Local Variables)는 함수 내에서만 유효합니다. 그래서, 함수 내부에서 변수를 참조할 때, 먼저 해당 함수 내의 변수를 확인하고, 없으면 상위 함수 또는 전역 변수를 참조합니다. 매개변수? 함수에 전달되는 인수를 매개변수(parameter)라고 합니다. 기본값 매개변수를 설정할 수 있으며, 함수 호출 시 값을 전달하지 않으면 기본값이 사용됩니다. 가변 매개변수? *를 사용하여 가변 개수의 인수를 받을 수 있습니다. 인수의 매개변수는 동적이기에 원하는 수만큼을 매개변수로 받을수 .. 더보기
[파이썬] 리스트 컴프리헨션 리스트 컴프리헨션(List Comprehension) 리스트 컴프리헨션은 직관적으로 리스트를 생성하는 방법입니다. 대괄호 "[", "]"로 감싸고 내부에 for문과 if 문을 사용하여 반복하며 조건에 만족하는 것만 리스트로 생성할 수 있습니다. numbers = [1, 2, 3, 4, 5] squared_numbers = [] for num in numbers: squared_numbers.append(num ** 2) 일반적인 리스트를 생성하는 방법 numbers = [1, 2, 3, 4, 5] squared_numbers = [num ** 2 for num in numbers] 리스트 컴프리헨션을 사용하여 리스트를 생성하는 방법 위의 코드에서 [num ** 2 for num in numbers]는 리.. 더보기