본문 바로가기

Python

(30)
22. 파일 입출력 1. 파일 열기 파일 변수 = open('파일명', '파일 열기 모드 및 종류 모드') 파일 열기 모드 : w(출력), r(입력), a(추가출력) w는 지정된 경로에 파일이 없으면 파일을 만든 후 저장하고, 파일이 있으면 기존의 모든 데이터를 지우고 다시 저장 r은 지정된 경로에 파일이 없으면 에러, 있으면 해당 파일의 데이터를 읽어옴 a는 지정된 경로에 파일이 없으면 파일을 만든 후 저장하고, 파일이 있으면 기존의 데이터 뒤에 이어서 저장 파일 종류 모드 : t(텍스트 파일, 생략 가능), b(바이너리 파일) input = open('text.txt', 'r') # 텍스트파일 열기 모드 input = open('text.txt', 'rt') # 텍스트파일 열기 모드 input = open('apple...
21. 예외 처리 1. 예외 처리 오류가 발생되었을 때 별도의 처리를 하거나 무시하고 프로그램을 실행하는 것 오류가 발생될 것으로 예상되는 문장을 try 블록에 코딩하고, try 블록에 코딩된 내용을 실행하다가 오류가 발생하면 더이상 try 블록의 내용을 싱행하지 않고 해당 오류의 except 블록에 코딩된 내용을 실행 파이썬은 발생할 수 있는 모든 문제를 예외 클래스로 만들어 놓음 1-1. try except 사용하기 try: 오류가 발생할 것으로 예상되는 문장 ... ... except: 오류가 발생했을 경우 실행할 문장 ... print(10 / 3) # 0으로 나눌 수 없기 때문에 오류 발생 # print(5 / 0) # ZeroDivisionError: division by zero print(4 / 2) try..
20. 모듈 1. 모듈 클래스 또는 함수를 모아 놓은 파일 모든 파이썬 파일(.py)은 모듈 # 모든 모듈의 전체 함수를 가져오기 import 모듈명 # 사용 모듈명.함수명() 모듈 사용하기 util # start부터 end까지의 합을 구하고 반환 def total(start, end): sum = 0 for i in range(start, end + 1): sum += i return sum # num1과 num2의 사칙연산의 결과를 반환 def calc(num1, num2): return num1 + num2, num1 - num2, num1 * num2, num1 / num2 ''' __name__ - 파이썬이 내부적으로 사용하는 특별한 변수 이름 - .py 파일이 직접 실행될 경우 __name__ 변수에 __..
19. 스페셜 메소드 1. 스페셜 메소드(Specaial Method) __로 시작해서 __로 끝나는 특수함수 해당 메소드들을 재구현하면 객체에 여러가지 파이썬 내장 함수나 연산자에 원하는 기능을 부여할 수 있음 class Point: def __init__(self, x, y): self.x = x self.y = y def print_point(self): # (3, 4) print(f'({self.x}, {self.y})') def __str__(self): # str() 함수를 오버라이딩 return (f'({self.x}, {self.y})') def __add__(self, pt): # +연산자를 오버라이딩 (객체 + 객체) new_x = self.x + pt.x new_y = self.y + pt.y return..
18. 상속 1. 상속 기존의 정의해둔 클래스의 기능을 그대로 물려받음 기존 클래스에 기능 일부를 추가하거나, 변경하여 새로운 클래스를 정의함 코드를 재사용할 수 있게 됨 안정적이고 유지보수에 용이함 상속을 받고자 하는 대상인 기존 클래스를 부모, parent, super, base 클래스라고 부름 상속을 받는 새로운 클래스 자식, child, sub 클래스라고 부름 class Animal: def __init__(self, name, age): self.name = name self.age = age def eat(self, food): print(f'{self.name}는 {food}를 먹습니다.') def sleep(self, hour): print(f'{self.name}는 {hour}시간 동안 잠을 잡니다...
17. 객체지향과 클래스 1. 객체지향 프로그래밍 문제를 여러개의 객체 단위로 나눠 작업하는 방식 1-1. 객체(Object)란? 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있고 다른 것과 식별 가능한 것을 말함 1-2. 클래스(Class)란? 객체를 생성하기 위한 일종의 설계도와 같음 클래스는 프로퍼티(필드), 메소드(함수)로 구성되어 있음 프로퍼티(Property): 데이터가 저장되는 곳 메소드(method): 객체의 동작에 해당하는 실행 블록 1-3. 클래스와 객체 건축 설계도가 클래스라면, 실제로 지어진 집은 객체 객체는 클래스로 생성되어 구체화된 인스턴스 실제로 클래스가 인스턴스화 되어 메모리에 상주하는 형태를 객체라고 부름 파이썬의 모든 변수와 함수는 객체로 저장 2. 클래스 만들..
16. 랜덤 모듈 1. 랜덤(random) 모듈 임의의 숫자를 무작위로 반환 1-1. random() 0이상 1미만의 실수 중에서 무작위로 하나를 뽑아 반환 import random num = random.random() print(num) # 0.9319261719708397 # 0이상 1미만의 무작위 실수 num = num * 10 print(num) # 9.319261719708397 num = int(num) # 0 ~ 9까지 정수 print(num) # 9 # 0부터 9까지 무작위 정수 num = num + 1 # 1 ~ 10까지 정수 print(num) # 10 # 1 ~ 10까지 정수 num = int(random.random() * 10) + 1 print(num) # 8 1-2. randrange() 원하..
15. 콜백함수와 람다함수 1. 콜백함수(Callback Function) 직접 호출하는 것이 아닌 다른 함수에 의해 호출되는 함수 def callback_func(func): for i in range(5): func() def print_hello(): print('안녕하세요! 파이썬') print_hello() # 안녕하세요! 파이썬 callback_func(print_hello) ''' 안녕하세요! 파이썬 안녕하세요! 파이썬 안녕하세요! 파이썬 안녕하세요! 파이썬 안녕하세요! 파이썬 ''' def callback_func(func, num): for i in range(num): func(i) def print_hello(num): print('안녕하세요! 파이썬!', num) def print_hi(num): print(..