#1 객체지향프로그래밍(Object Orientative Programming, OOP)OOP 소개 및 장점OOP란 객체를 기본단위로 하는 프로그래밍 구조화 방법론이다. OOP에서 객체는 함수와 데이터의 속성의 묶음이다. OOP를 활용하면 고수준에서 프로그래밍 설계를 가능하게 한다. 그리고 잘 설계 된 자료형들은 재사용이 쉽다. OOP를 이해하려면 객체, 클래스, 인스턴스가 뭔지 알아야한다.객체파이썬에서 모든 것은 객체다. 구체적으로는 객체는 데이터와 기능이 묶인 것이다.데이터속성, 메서드속성이란 객체의 데이터와 기능이다. 객체를 담은 변수 뒤에 (.)을 찍어서 사용할 수 있다. 속성에는 데이터 속성과 메서드가 있다. 데이터 속성이란 객체가 내부적으로 갖는 변수들이다. 변수는 객체가 기능을 수행하거나 필..
#10 이름이 없는 함수문장 하나로 이뤄진 짧고 간단한 함수는 이름도 붙여주지 않고 간결하게 사용할 수 있다. 이름이 없는 함수를 람다함수라고도 한다. lambda x, y: x + y람다함수는 lambda 키워드를 사용하여 만든다.# 함수 객체처럼 변수를 통해서 사용my_func = lambda x, y: x + ymy_func(1, 2)람다함수를 다른 함수의 인수로 넣어서 사용할 수 있다.# 다른 함수에 인수로 넣어서 사용할 수도 있습니다.def do_something(my_func): my_func()do_something(lambda: print("Hello, World"))람다는 map(), filter() 등의 내장함수와 함께 사용할 때 편리하다.add_100 = lambda x: x +..
#8 재귀 호출자기 자신을 호출하도록 정의한 함수를 재귀함수라고 한다. 재귀함수의 호출을 재귀호출이라고 한다.def my_func(): print("my_func") my_func()my_func()동일한 형태의 함수라도 실제로는 함수를 호출할 때마다 새로운 프레임을 만든다.def my_func(): x = [] print("my_func", id(x)) my_func()my_func()재귀호출을 중단하는 종료조건이 필요하다.def my_func(count): if count > 0: my_func(count - 1) print(count)my_func(3)#9 함수객체파이썬에서는 함수도 객체다. 따라서 함수도 변수에 저..
#7 네임스페이스와 변수의 범위변수의 범위동일한 이름의 변수가 여러번 사용할 때가 있다. 변수는 경우에 따라서 다른 객체를 참조할 수 있다. 이는 변수가 동일하더라도 참조하는 객체가 다를 수 있기 때문이다. 변수마다 변수의 범위가 있다. 변수의 범위를 알려면 네임스페이스를 이해해야한다.변수와 네임스페이스파이썬에서는 다른 언어와 달리 변수는 객체를 보관하는 장소가 아니라 객체에 붙인 이름이다. 변수 뿐만 아니라 함수, 클래스도 이름이다. 객체들을 식별하기 위해 이름들을 모은 공간을 네임스페이스(namespace)라고 한다.하나의 네임스페이스에서는 이름은 중복되지 않는다. 즉, 하나의 네임스페이스에서 이름은 하나의 객체만을 가리킨다. 그렇지만 다른 네임스페이스에서는 같은 이름이 존재할 수 있다.def fun..
#3 매개변수와 인수매개변수매개변수는 함수의 외부에서 내부로 객체의 참조를 전달한다.def repeat_print(message, count): """메세지를 주어진 횟수만큼 반복 출력""" for i in range(count): print(message)repeat_print("안녕", 3)인수인수는 함수 실행시 함수 내부로 실제로 전달되는 대상이다. 인수는 위치인수와 키워드 인수가 있다.위치인수는 매개변수의 순서와 대응해서 들어간다.def repeat_print(message, count): """message를 count번 출력""" for _ in range(count): print(message)repeat_print(3, "안녕") # 오류 발..
#1 함수란?특정 기능을 수행하기 위해 필요한 명령문들을 묶어서 이름을 붙여놓은 것프로그램에서 함수들을 분석하는 법각 함수들의 입력과 출력을 특정한다(입력 → 함수 → 출력)큰 구조 내에서 데이터가 어떻게 흐르는 지 파악한다함수가 필요한 이유재사용성: 자주 사용하는 코드들을 묶어서 재사용할 수 있다. 매번 구현하기 어렵거나 번거로울 때 편리하다.분할정복: 크고 복잡한 문제를 작고 단순한 문제 여러개로 쪼갤 수 있다.#2 함수를 만드는 법전체 프로그램을 어떻게 분해할 지 생각한다개별 함수의 입출력을 정의한다문법에 따라 구현한다함수의 기본형식def 함수이름(매개변수1, 매개변수2, ...): """함수의 기능에 대해서 설명""" 기능을 수행하거나 반환값을 계산하는 명령문들 return 반환값..