1. 클래스
2. 모듈
3. 예외처리
1) 정의 : 동일한 무언가를 계속 만들 수 있는 설계 도면
2) 특징
- 객체마다 고유 성질을 가짐
- 동일한 클래스로 만든 객체들은 서로 영향을 주지 않음
3) 클래스 선언
class 클래스 이름 :
클래스 내용
class TeddiBearJelly():
pass
1) 정의
객체 : 클래스로 만들어진 모든 것
'red_jelly=TeddyBearJelly()'로 만든 red_jelly는 객체
인스턴스 : red_jelly는 TeddyBearJelly의 인스턴스
인스턴스 이름 = 클래스 이름()
1) 정의
class 클래스 이름:
def 메소드 이름(self, 추가 매개변수) :
pass
2) 특징
- 클래스 내부 함수의 첫 번째 매개변수는 반드시 self 입력
# 곰돌이 젤리 클래스 선언
# 'set_info' 함수 선언 : 젤리 생성시 필요한 속성 입력
# 'print_info' 함수 선언 : 젤리 속성 출력
class TeddyBearJelly:
def set_info(self,color,taste):
self.color=color
self.taste=taste
def print_info(self):
print("=================")
print("Color : ", self.color)
print("Taste : ", self.taste)
print("=================")
# 젤리 객체 선언
yellow_jelly=TeddyBearJelly()
# 젤리 객체의 필요한 속성 입력
# 메소드 사용
yellow_jelly.set_info("yellow","lemon")
# yellow_jelly의 속성에 접근하는 방법
print(yellow_jelly.color)
print(yellow_jelly.taste)
# 젤리 객체 내용 출력
# 메소드 사용
yellow_jelly.print_info()
1) 정의
- constructor : 클래스로부터 인스턴스가 생성될 때, 자동으로 실행되는 함수
- 가장 먼저 생성자인 'init' 함수 호출
class 클래스 이름:
def init(self, 추가 매개변수) :
pass
# 메소드는 클래스 내부의 함수를 의미
# '5. 메소드'에서 구현했던 'TeddyBearJelly' 클래스의
# 'set_info( )' 함수가 데이터를 입력받는 역할 수행함
# 'set_info' 메소드를 '__init__' 메소드로 이름 변경
# 곰돌이 젤리 클래스 선언
# 생성자 선언
class TeddyBearJelly:
def __init__(self, color, taste):
self.color=color
self.taste=taste
# 젤리 리스트 선언
jelly=[TeddyBearJelly("red","strawberry"),TeddyBearJelly("yellow","lemon"),TeddyBearJelly("green","apple")]
# jelly 인스턴스의 속성에 접근하는 방법
print(jelly[1].color)
print(jelly[0].taste)
1) 기능
2) 특징
1) 정의
2) 특징
1) 정의
# 부모 클래스 선언
class Jelly:
def __init__(self, color,taste):
self.color=color
self.taste=taste
def print_info(self):
print("부모 클래스입니다.")
print("젤리")
# 자식 클래스 선언
# 자식 클래스를 선언할 때 소괄호로 부모 클래스를 포함
# 일반적인 메소드 오버라이딩
# 자식 클래스에서 생성된 메소드로 부모 클래스의 메소드 무시
class TeddyBearJelly(Jelly):
def print_info(self):
print("자식 클래스입니다.")
print("곰돌이 젤리")
print("Taste : ", self.taste)
print("Color : ", self.color)
# 자식 클래스 선언
# 자식 클래스를 선언할 때 소괄호로 부모클래스를 포함
# 부모 메소드 호출
# super() 키워드를 사용하여 자식 클래스에서 부모 클래스 호출 가능
class HeartJelly(Jelly):
def print_info(self):
super().print_info()
print("자식 클래스입니다.")
print("하트 젤리")
print("Taste : ", self.taste)
print("Color : ", self.color)
# 부모 클래스로 객체 생성
# 부모 클래스의 print_info() 함수
red_jelly=Jelly("red","strawberry")
red_jelly.print_info()
# 자식 클래스로 객체 생성
# 자식 클래스의 print_info() 함수
# 자식 클래스에서 생성된 메소드로 부모 클래스의 메소드 무시
yellow_jelly=TeddyBearJelly("yello","lemon")
yellow_jelly.print_info()
# 자식 클래스로 객체 생성
# 자식 클래스의 print_info() 함수
# super() 키워드를 사용하여 자식 클래스에서 부모 클래스 호출 가능
green_jelly=HeartJelly("green","apple")
green_jelly.print_info()
class 부모 클래스1:
pass
class 부모 클래스2:
pass
class 자식 클래스(부모 클래스1, 부모 클래스2):
pass
1) 정의
: 여러 변수와 함수를 가지고 있는 집합
2) 종류
import 모듈 이름
import math
print(math.floor(1.2))
print(math.ceil(1.2))
from 모듈 이름 import 가져오고 싶은 변수 또는 함수
from 모듈 이름 import *
from math import floor, ceil
print(math.floor(1.2))
print(math.ceil(1.2))
import 모듈 as 모듈의 별칭
import math as m
print(m.floor(1.2))
print(m.ceil(1.2))
1) 정의
: 파이썬 기본 제공 모듈이 아닌 외부 사람들이 만들어서 배포한 것
2) 종류
pip install 모듈이름
import seaborn as sns
titanic=sns.load_dataset("titanic")
데이터 파악
- head( ) 함수 : titanic 데이터 상단 5개의 행 확인
- info( ) 함수 : 행과 열의 크기, 컬럼명, 결측치, 데이터 타입 확인
데이터 시각화
- swarmplot( ) 함수 : 데이터의 분산까지 고려하여 데이터 포인트가 서로 중복되지 않도록 시각화. 즉, 데이터가 퍼져 있는 정도를 입체적으로 파악 가능
swarmplot( ) 함수의 매개변수
- x축 변수
- y축 변수
- 데이터 셋
- hue : 특정 열 데이터로 색상을 구분하여 출력
sns.swarmplot(x='class',y='age',data=titanic,hue='sex')
try:
예외 발생할 가능성 있는 코드
except:
예외 발생했을 때 실행할 코드
# try 문 안에는 예외가 발생할 가능성이 있는 모든 코드 삽입
# except 문 안에는 예외가 발생했을 때 실행할 모든 코드 삽입
# except 문 안에 pass 키워드를 넣으면 아무것도 출력하지 않고 강제 종료도 막을 수 있음
try:
myList=[1,2,3,4]
myList[7]
except:
pass
# try 문 안에는 예외가 발생할 가능성이 있는 모든 코드 삽입
# except 문 안에는 예외가 발생했을 때 실행할 모든 코드 삽입
# else 문 안에는 예외가 발생하지 않았을 때 실행할 코드 삽입
# 숫자 입력시 프로그램 정상 작동
try:
Number=int(input("숫자 입력 : "))
except:
print("예외가 발생하였습니다.")
else:
print("입력한 숫자는 ",Number,"입니다.")
# try 문 안에는 예외가 발생할 가능성이 있는 모든 코드 삽입
# except 문 안에는 예외가 발생했을 때 실행할 모든 코드 삽입
# finally 문 안에는 예외 발생 여부와 상관없이 무조건 실행할 코드 삽입
# 문자 입력 시 예외 발생
try:
Number=int(input("숫자입력 : "))
except:
print("예외가 발생하였습니다.")
finally:
print("finally 문은 무조건 실행하는 코드")
# try 문 안에는 예외가 발생할 가능성이 있는 모든 코드 삽입
# except 문 안에는 예외가 발생했을 때 실행할 모든 코드 삽입
# else 문 안에는 예외가 발생하지 않았을 때 실행할 코드 삽입
# finally 문 안에는 예외 발생 여부와 상관없이 무조건 실행할 코드 삽입
# 문자 입력 시 예외 발생
try:
Number=int(input("숫자입력 : "))
except:
print("예외가 발생하였습니다.")
else:
print("입력한 숫자는 ",Number,"입니다.")
finally:
print("finally 문은 무조건 실행하는 코드")