예외(exception)란 코드를 실행하는 중에 발생한 에러를 뜻한다. 다음과 같이 10을 어떤 값으로 나누는 함수 ten_div가 있을 때 인수에 따라 정상으로 동작하기도 하고 에러가 나기도 한다. >>> def ten_div(x): ... return 10 / x ... 이 함수에 2를 넣으면 5.0이 나온다. 하지만 0을 넣으면 실행하는 중에 에러가 발생한다. 이런 상황을 예외라고 하는데 여기서는 어떤 숫자를 0으로 나누어서 ZeroDivisionError 예외가 발생했다. ZeroDivisionError뿐만 아니라 지금까지 만난 AttributeError, NameError, TypeError 등 다양한 에러들도 모두 예외이다. try except로 사용하기 예외 처리를 하려면 다음과 같이 try..
클래스 상속 사용하기 상속은 무언가를 물려받는다는 뜻이다. 그래서 클래스 상속은 물려받은 기능을 유지한채로 다른 기능을 추가할 때 사용하는 기능이다. 여기서 기능을 물려주는 클래스를 기반 클래스(base class), 상속을 받아 새롭게 만드는 클래스를 파생 클래스(derived class)라고 한다. 보통 기반 클래스는 부모 클래스(parent class), 슈퍼 클래스(superclass)라고 부르고, 파생 클래스는 자식 클래스(child class), 서브 클래스(subclass)라고도 부른다. 클래스 상속은 생물 분류를 떠올리면 이해하기 쉽다. 예를 들어 조류, 어류는 공통된 조상인 척추동물로부터 물려받은 특성을 공유하면서 각자 고유한 특성을 가진다. 척추를 가졌다는 특성은 변함이 없지만 날개를 ..
속성에는 클래스 속성과 인스턴스 속성 두 가지 종류가 있다. __init__ 메서드에서 만들었던 속성은 인스턴스 속성이다. 클래스 속성 사용하기 class 클래스이름: 속성 = 값 class Person: bag = [] def put_bag(self, stuff): self.bag.append(stuff) james = Person() james.put_bag('책') maria = Person() maria.put_bag('열쇠') print(james.bag) print(maria.bag) 실행결과 ['책', '열쇠'] ['책', '열쇠'] james와 maria 인스턴스를 만들고 각자 put_bag 메서드로 물건을 넣었는데, james.bag과 maria.bag을 출력해보면 넣었던 물건이 합쳐져서..
클래스 사용하기 클래스는 객체를 표현하기 위한 문법이다. 프로그래밍에서는 현실 세계에 있는 개념들뿐만 아니라 컴퓨터 안에서만 쓰이는 개념들도 클래스로 만들어서 표현한다. 특정한 개념이나 모양으로 존재하는 것을 객체(object)라고 부른다. 그리고 프로그래밍으로 객체를 만들 때 사용하는 것이 클래스이다. 데이터를 클래스의 속성(attribute)이라 부르고, 기능을 메서드(method)라고 부른다. 이러한 프로그래밍 방법을 객체지향(object oriented) 프로그래밍이라고 한다. 객체지향 프로그래밍은 복잡한 문제를 잘게 나누어 객체로 만들고, 객체를 조합해서 문제를 해결한다. 따라서 현실 세계의 복잡한 문제를 처리하는데 유용하며 기능을 개선하고 발전시킬 때도 해당 클래스만 수정하면 되므로 유지 보..
람다 표현식 람다 표현식은 식 형태로 되어 있다고 해서 람다 표현식 (lambda expression)이라고 부른다. 특히 람다 표현식은 함수를 간편하게 작성할 수 있어서 다른 함수의 인수로 넣을 때 주로 사용한다. 람다 표현식으로 함수 만들기 >>> def plus_ten(x): ... return x + 10 ... >>> plus_ten(1) 11 숫자를 받은 뒤 10을 더해서 반환하는 함수 return x + 10으로 매개변수 x에 10을 더한 값을 반환하는 간단한 함수이다. 람다 표현식은 다음과 같이 lambda에 매개변수를 지정하고 : (콜론) 뒤에 반환값으로 사용할 식을 지정한다. lambda 매개변수들: 식 >>> lambda x: x + 10 실행해보면 함수 객체가 나오는데, 이 상태로는..
if 조건문 사용하기 if 조건문은 if에 조건식을 지정하고 :(콜론)을 붙이며 다음 줄에 실행할 코드가 온다. 이때 실행할 코드는 반드시 들여쓰기를 해야 한다. if 조건식: 코드 만약 if 다음 줄에서 들여쓰기를 하지 않으면 들여쓰기 에러가 발생한다. if 조건문의 기본 형태와 실행 흐름 알아보기 파이썬에서 if 조건문은 if 조건식: 형식으로 사용하며 그다음 줄에는 들여쓰기를 한 뒤 조건식이 만족할 때 실행할 코드를 넣는다. 특히 이 조건식이 만족할 때 실행할 코드를 if 본문(if body)이라고 부른다. if 조건문의 실행 흐름을 그림으로 표현하면 다음과 같은 모양이 된다. 보통 if의 조건식이 만족하면 참( True), 만족하지 않으면 거짓(False)이라고 부른다. if 조건문에서 코드를 생..
딕셔너리 사용하기 리스트와 튜플은 값 여러 개를 일렬로 저장할 뿐 값끼리 연관 관계가 없었다. 파이썬에서는 연관된 값을 묶어서 저장하는 용도로 딕셔너리라는 자료형을 제공한다. 딕셔너리는 값마다 이름을 붙여서 저장하는 방식이다. 즉, 사전(dictionary)에서 단어를 찾듯이 값을 가져올 수 있다고 하여 딕셔너리라고 부른다. 딕셔너리 만들기 딕셔너리는 { }(중괄호) 안에 키: 값 형식으로 저장하며 각 키와 값은 ,(콤마)로 구분해준다. 딕셔너리 = {키1: 값1, 키2: 값2} >>> lux = {'health': 490, 'mana': 334, 'melee': 550, 'armor': 18.72} >>> lux {'health': 490, 'mana': 334, 'melee': 550, 'armor'..
불과 비교 연산자 사용하기 불(boolean)은 True, False로 표현하며 1, 3.6, 'Python'처럼 값의 일종이다. 파이썬에서는 비교 연산자와 논리 연산자의 판단 결과로 True, False를 사용한다. 즉, 비교 결과가 맞으면 True, 아니면 False이다. 숫자가 같은지 비교하기 두 숫자가 같은지 비교할 때는 ==(equal), 다른지 비교할 때는 !=(not equal)을 사용한다. >>> 10 == 10 # 10과 10이 같은지 비교 True >>> 10 != 5 # 10과 5가 다른지 비교 True 문자열이 같은지 비교하기 문자열은 비교할 때 대소문자를 구분한다. 다음과 같이 단어가 같아도 대소문자가 다르면 다른 문자열로 판단한다. >>> 'Python' == 'Python' T..