티스토리 뷰
문자열
쉽다. dir(str)을 이용해 모르는 것이 나오면 찾아서 해결하자.
함수와 모듈
매개변수 미리 지정
함수를 선언할 때 매개변수의 기본값을 지정할 수 있다. 기본값을 지정함으로써 해당 매개변수를 생략하더라도 오류를 발생시키지 않는다.
def para_func(v1, v2, v3=0):
return v1 + v2 + v3
print(para_func(10, 20)) # 30
print(para_func(10, 20, 30)) # 60
매개변수의 개수를 지정하지 않고 전달하는 방법
먼저 튜플 형식으로 받을 경우,
def para_func(*para):
result = 0
for i in para:
result += i
return result
print(para_func(10, 20, 30, 40)) # 매개변수는 튜플 형식으로 전달, 100
매개변수 앞에 *을 입력한다
딕셔너리로 매개변수를 받고자 원할 경우 **을 입력한다.
def para_func(**para):
result = 0
for i in para:
result += para[i]
return result
print(para_func(사자=10, 물고기=20, 고라니=30, 나비=40)) # 매개변수는 딕셔너리 형식으로 전달, 100
모듈에 대해
모듈은 함수의 집합으로 별도의 파일에 함수들을 모아 놓은 것
패키지(모듈 여러 개, 폴더 형태) > 모듈(함수 여러 개) > 함수
모듈은 표준 모듈, 사용자 정의 모듈, 서드 파티 모듈로 나뉜다.
클래스
class Car: # 슈퍼 클래스
#############################
######### 필드 부분 #########
#############################
name = '' # 인스턴스 변수
speed = 0 # 인스턴스 변수
count = 0 # 클래스 변수
##############################
######### 메서드 부분 #########
##############################
def __init__(self, value): # 생성자 (인스턴스를 생성하면 무조건 호출되는 메서드)
# 매개변수가 있는 생성자, self만 있는 생성자는 기본 생성자라고 부름
self.name = value # 매개변수를 받아와서 인스턴스 변수에 대입 -> 초기값 설정
self.speed = 40 # 초기값 설정
Car.count += 1 # 클래스 변수 조작
print('\n"%s" 이름의 자동차가 생성되었습니다!\n' % self.name)
def SpeedUP(self, value):
self.speed += value
def SpeedDOWN(self, value):
self.speed -= value
class Sedan(Car): # 클래스의 상속 => class 서브_클래스(슈퍼_클래스)
def SpeedUP(self, value): # 메서드 오버라이딩 또는 재정의 (일부 내용을 수정하기 위해 사용)
self.speed += value
if self.speed > 100:
print('"%s" 이름의 자동차가 최고속도 규정을 위반했습니다.' % self.name)
class Truk(Car): # 클래스의 상속 => class 서브_클래스(슈퍼_클래스)
def SpeedUP(self, value): # 메서드 오버라이딩 또는 재정의 (일부 내용을 수정하기 위해 사용)
self.speed += value
if self.speed > 120:
print('"%s" 이름의 자동차가 최고속도 규정을 위반했습니다.' % self.name)
def SpeedDOWN(self, value): # 메서드 오버라이딩 또는 재정의 (일부 내용을 수정하기 위해 사용)
self.speed -= value
if self.speed < 30:
print('"%s" 이름의 자동차가 최저속도 규정을 위반했습니다.' % self.name)
class Ben(Car):
pass # 슈퍼 클래스 메서드를 그대로 상속
###############################
######### 메인코드 부분 #########
###############################
MyCar1 = Sedan('1호 자동차') # 인스턴스 생성
print('현재 속도:', MyCar1.speed) # MyCar1.speed : 필드 값 불러오기
MyCar1.SpeedUP(100) # 메서드의 호출
print('현재 속도:', MyCar1.speed)
MyCar1.SpeedDOWN(130) # 메서드의 호출
print('현재 속도:', MyCar1.speed)
print()
print('현재 자동차 개수:', MyCar1.count) # MyCar1.count : 클래스 변수에 접근
print()
MyCar2 = Truk('2호 자동차')
print('현재 속도:', MyCar1.speed)
MyCar2.SpeedUP(100)
print('현재 속도:', MyCar1.speed)
MyCar2.SpeedDOWN(130)
print('현재 속도:', MyCar1.speed)
print()
print('현재 자동차 개수:', MyCar1.count) # 2
print('현재 자동차 개수:', MyCar2.count) # 2. => 클래스 변수는 각각의 인스턴스에 독립적으로 작용x 전체로 작용함!
print()
'CODING > Python' 카테고리의 다른 글
| [컴퓨터 공학/소프트웨어/인공지능 관련 생기부 주제 추천] Python 딥러닝을 이용해 공부 집중도를 분석하는 프로그램 보고서 (0) | 2023.02.27 |
|---|---|
| 경북대 예비대학 파이썬교육 (기말고사 전 마지막정리) (0) | 2023.02.21 |
| 경북대 예비대학 파이썬교육 (5일차) (리스트, 튜플, 딕셔너리, 세트 자료형) (0) | 2023.02.20 |
| 경북대 예비대학 파이썬교육 (중간고사 문제 + 4일차) (0) | 2023.02.17 |
| 경북대 예비대학 파이썬교육 (3일차 + 중간고사 전 마지막정리) (0) | 2023.02.16 |