파이썬

ALL

Python 클래스 상속 예제

클래스를 정의해서 사용하는 이유중 하나가 재사용을 하기위해서입니다. 재사용을 하기위해서는 먼저 만들어 놓은 클래스를 상속해서 사용애햐합니다. 클래스 상속은 파이썬 뿐만아니라 오브젝트 지향 언어에서는 유용하게 사용되는 중요한 부분입니다. 상속 예제 class Base: basevalue = "base" def spam(self): print("Base.spam()") def ham(self): print("ham") class Derived(Base): def spam(self): print ("Derived.spam()") self...
ALL

Python 클래스 작성 방법 예제

간단한 동작을 확인하거나 테스트를 하기 위해 작성할 때 클래스를 만들지 않아도 실행이 됩니다. 하지만 실제로 사용하기 위해 만든 프로그램에 처음부터 끝가지 하나의 파일에 작성하게 되면 에러가 발생하거나 수정 또는 추가 기능을 만들 때 효율적이지 못합니다. 오브젝트 지향 언어인파이썬에서도 클래스와 오브젝트를 활용해 작성하는 것이 좋습니다. 작성 방법과 예제를 간단하게 보겠습니다. class 클래스 예제 class Spam: val = 100 def ham(self): self.egg('call method') def egg(self,...
ALL

Python 예외 처리 except 여러개 작성 방법

예외 처리인 try except에는 처리에 맞는 적절한 예외처리 종류를 작성해야 합니다. 만약, 발생할 수 있는 에러가 여러개라면 예외 처리 종류도 여러개 작성해야 합니다. 파일 입출력의 경우를 예로 보겠습니다. 예외처리 복수 예제 try: f = open(file_name,'w') data = dict_input f.write(data) f.close() except KeyError: print('Key not found') except (FileNotFoundError, TypeError) : print('Could not op...
ALL

Python 예외 처리 finally와 else 차이

예외 처리로 에러를 처리하는 경우 사용할 수 있는 문법으로 finally와 else가 있습니다. 사용 방법과 어떤 동작을 하는지 알아보겠습니다. 먼저 else는 try문 내에서 에러가 발생하지 않은 경우 처리를 하게 됩니다. else 예제 try: a = 10 / 1 print("{0}".format(a)) except ZeroDivisionError as e: print("ZeroDivisionError!!") else: print("else statement") finally: print("finally statement") 결...
ALL

Python 예외 처리 try except 기본 사용법

작성한 소스를 컴파일 할 때 에러가 발생하는 경우는 컴파일 에러라고 합니다. 하지만 컴파일은 문제없이 종료되었지만 프로그램 실행 중 에러가 발생하는 경우도 있습니다. 이러한 경우를 예외라고 합니다. a = 10 / 0 print("{0}".format(a)) 컴파일 할 때는 문제가 없지만 실행할 때 에러가 발생합니다. ZeroDivisionError: integer division or modulo by zero 이러한 에러를 미리 예상하고 잡아주지 않으면 프로그램 실행 중에 갑자기 종료되버립니다. 따라서 예외 처리를 작성해 주면 ...
ALL

Pandas DataFrame 공백(NaN) 행만 추출 방법

DataFrame을 사용할때NaN(Null) 인 데이터만 추출하고 싶은 경우가 있습니다. isnull 함수를 사용해서 DataFrame에 NaN(Null)이 존재하는 행만 추출하는 여러 가지 예제를 보도록 하겠습니다. 테스트 데이터 준비 먼저 예제를 실행할 수 있는 테스트용 데이터를 만들겠습니다. random 함수를 사용해 랜덤으로 생성된 숫자를 DataFrame에 추가하겠습니다. 열은 ABCDE로 지정하겠습니다. 그리고 마지막 줄에서iloc로Null을 설정해두겠습니다. import pandas as pd import numpy a...
ALL

Python 문자열 검색 find 함수 인덱스 취득

문자열 안에서 찾고 싶은 문자가 몇 번째에 있는지 찾고 싶은 경우가 있습니다. find 함수를 사용하면 지정한 문자가 어디에 있는지 인덱스(index)를 반환합니다. 그리도 뒤에서부터 찾고 싶은 경우에는 rfind 함수를 사용해서 찾을 수 있습니다. find 함수 원하는 문자가 몇 번째에 있는지 찾는 예제를 보겠습니다. str = 'abcabcabc' index = str.find('b') # index는1 (2번째 문자) 변수index에는1이 반환됩니다. 변수 str에 'abcabcabc' 문자 b가 어디에 있는지 find 함수로...
ALL

Python 문자열 대입(sprintf, format) 사용 방법

문자열에 변수값을 대입하고 싶은 경우가 있습니다. 자주 사용하는 방법으로 2가지를 보도록 하겠습니다. sprintf 가장 많이 사용하는 방법이 아닐까 합니다. 문자열에%연산자를 사용해 값 또는 list/tuple을 대입합니다. sprintf 예제 a = 'Python' b = 'a programming language' print('%s is %s' % (a, b)) 결과 'Python is a programming language'   '%s is %s'문자열 안에 %s 가 2개 설정되어 있습니다. %s 뜻은 문자를 대입하겠다는 ...
ALL

Python 처리시간(time) 측정 방법

작성한 소스가 동작 시간이 오래 걸리는 경우가 있습니다. 처리에 시간이 얼마나 걸리는지 확인을 해서 소스를 개선해야 하거나 하는 경우 실제로 처리시간이 얼마나 걸리는지 측정을 해야 합니다. 가장 간단한 방법은 time 모듈을 사용해 시간을 측정하는 방법입니다. 본격적으로 처리 시간을 측정하는 방법을 알아보겠습니다. 처리 시간 측정 time 모듈을 사용하기 위해서 임포트 합니다. 파이썬에서 현재 시간을 취득할때 time함수를 많이 사용합니다. 처리전 현재시간과 처리후 현재 시간을 취득해 두 시간의 차이를 계산하는 방법으로 가장 간단하...