본문 바로가기

반응형

Python Tutorial

(46)
[Python] 함수 #7 람다(lambda) 이번 포스트에서는 익명의 함수를 만드는 람다 표현식에 대해 살펴 보도록 하겠다. 목차 함수 소개 디폴트 파라미터 주의 사항 파라미터 언패킹 파라미터 패킹 함수 객체 일급 객체(first class object) >> 람다(lambda) 람다 표현식이란? 람다란, 프로그래밍 언어에서 사용되는 개념으로 익명의 함수, 이름 없는 함수를 지칭하는 용어다. 익명함수란 말 그대로 함수의 이름이 없는 함수다. 보통 파이썬에서 def 키워드를 사용하여 함수를 선언하고 기능을 정의 하는 것과는 달리, 람다는 함수를 하나의 식으로 정의한다. 수학적으로 함수를 단순하게 표현하는 방법을 '람다'라고 하고, 함수를 하나의 식으로 표현 한다고 해서 '표현식'. 이 둘을 합하여 '람다 표현식'이라고 부른다. 아직 무슨 말인지 이해..
[Python] 함수 #6 일급 객체(first class object) 이번 포스트에서는 일급 객체(first class object)라는 용어에 대해 살펴 보겠다. 개념적인 내용이므로 프로그래밍하는데 큰 영향을 끼치지는 않지만(특히 파이썬에서), 알아 두면 어디 가서 아는척하기 좋은 지식이니 가볍게 읽고 넘어가도록 하자. 목차 함수 소개 디폴트 파라미터 주의 사항 파라미터 언패킹 파라미터 패킹 함수 객체 >> 일급 객체(first class object) 람다(lambda) 일급 객체(first class object)란? 우리가 프로그래밍을 하다 보면 first class object(일급 객체)라는 다소 생소한 용어를 만날 수 있다. 일급 객체란 프로그래밍에서 아래에 나열된 특징을 가지는 모든 객체들을 가리킨다. 모든 요소는 "할당 명령문의 대상"이 될 수 있다. 모든..
[Python] 함수 #2 디폴트 파라미터 주의 사항 이번 포스트에서 다룰 내용은 어려운 내용은 아니지만 파이썬 프로그래밍을 하다 보면 한번은 경험하게 되는 - 특히, 다른 프로그래밍 언어 경험이 있는 경우 더 경험하기 쉬운 - 디폴트 파라미터에 대한 문제를 다뤄보도록 하겠다. 파이썬 관련 면접 질문에서도 종종 물어보는 문제이므로 이제 시작하는 프로그래머라면 잘 읽어 두도록 하자. 목차 함수 소개 >> 디폴트 파라미터 주의 사항 파라미터 언패킹 파라미터 패킹 함수 객체 일급 객체(first class object) 람다(lambda) mutable 타입을 함수의 디폴트 인자로 사용하지 말라 파이썬에서 mutable 타입이란 상태를 변경 할 수 있는 객체를 말한다. 예를들어 list, bytearray, set과 같은 시퀀스들이 좋은 예다. 반대로 immut..
[Python] 함수 #5 함수 객체 파이썬에서는 모든 것이 객체로 취급 된다고 이야기 했다. "함수" 역시 예외가 아니다. 오늘은 "파이썬에서는 함수도 객체"다 라는 주제를 가지고 이야기를 풀어 보겠다. 목차 함수 소개 디폴트 파라미터 주의 사항 파라미터 언패킹 파라미터 패킹 >> 함수 객체 일급 객체(first class object) 람다(lambda) 함수도 객체다 파이썬에서는 모든 것을 객체로 관리한다고 했다. 파이썬 함수 역시 객체다. 자세한 설명은 뒤로 미루고, "함수는 객체다"라는 것만 기억하며 아래 예제 부터 보도록 한다. import sys def add(x, y) : return x + y print(hex(id(add))) # 함수 객체의 주소 print(sys.getrefcount(add)) # 함수 객체의 레퍼런스 ..
[Python] 함수 #8 전역 변수와 지역 변수 이번 강좌에서는 파이썬의 전역 변수와 지역 변수에 대해 설명한다. 프로그래밍을 처음 접하는 분들에겐 접근 가능 범위와 생명 주기와 같은 용어가 생소하게 다가 올 수 있을 것이다. 생소한 용어라 당황스러울 수 있지만, 개념적으로 어렵거나 복잡한 내용은 아니므로 긴장하지 말고 가벼운 마음으로 따라오자. 프로그래밍에서는 변수의 선언 위치에 따라 변수의 유효 범위, 메모리 반환 시기, 초기화 여부가 달라진다. 크게는 전역 변수와 지역 변수로 나뉜다. 전역 변수는 프로그램이 시작하면서 종료 할 때까지 메모리에 상주하며, 프로그램 어디에서든 접근이 가능한 변수인 반면에 지역 변수는 함수와 같이 변수가 선언된 특정 코드 블록이 내에서만 접근이 가능하고 해당 블록이 종료 되면 변수 또한 메모리에서 해제된다. 또한 파이..
[Python] 함수 #4 파라미터 패킹 이번 강의에서는 파이썬 함수 인자(parameter)의 개수를 유연하게 지정 할 수 있는(가변 인자) 파라미터 패킹(parameter packing)에 대해 살펴 보도록 하겠다. 목차 함수 소개 디폴트 파라미터 주의 사항 파라미터 언패킹 >> 파라미터 패킹 함수 객체 일급 객체(first class object) 람다(lambda) 파라미터 패킹 파이썬에서 파라미터 패킹(parameter packing)이란 고정되지 않은 여러개의 인자를 하나의 시퀀스 객체로 묶어 함수에게 전달하는 것을 말한다. 고정되지 않은 여러개의 인자(parameter)를 묶은 하나의 시퀀스 인자 바꿔 말하면 파라미터 패킹을 통해 '가변 인자 함수'가 가능하다는 것이다. 우리가 자주 써왔던 print표준 함수가 좋은 파라미터 패킹과..
[Python] 함수 #3 파라미터 언패킹 이번에 살펴볼 파라미터 패킹과 언패킹은 포스트가 길어져 두 장에 나뉘어 작성 되었다. 이번 포스트에서는 언패킹에 대해 알아보고, 바로 이어지는 다음 포스트에서 패킹에 대해 같이 알아보도록 하겠다. 목차 함수 소개 디폴트 파라미터 주의 사항 >> 파라미터 언패킹 파라미터 패킹 함수 객체 일급 객체(first class object) 람다(lambda) 파라미터 언팩(unpack) 파라메터 언패킹(unpacking)이란 시퀀스 객체(list, tuple, set, dictionary)가 함수의 인자로 넘겨지는 경우, 시퀀스 객체의 각 요소들을 개별 변수로 풀어서, 각각의 변수로 함수의 인자로 전달하는 기능을 말한다. 글로 설명하면 설명이 어려우니 빠르게 예제 중심으로 설명하도록 한다. 언패킹이란? "시퀀스 ..
[Python] 함수 #1 소개 이번 포스트 부터 몇 장에 걸쳐 파이썬 함수에 대해서 다룬다. 먼저 본 포스트에서는 파이썬 함수의 기본 문법에 대해 빠르게 살펴 본 다음, 파이썬 함수의 인자 전달 방법을 알아본다. 파이썬 함수에 대해 기본 사항을 파악하고 난 후 다음 포스트 부터 파라미터 패킹/언패킹, 데코레이터들을 이어서 살펴 보도록하겠다. 목차 >> 함수 소개 디폴트 파라미터 주의 사항 파라미터 언패킹 파라미터 패킹 함수 객체 일급 객체(first class object) 람다(lambda) 파이썬 함수의 문법 파이썬 함수는 다음과 같은 형식을 가진다. def 함수명(매개변수 리스트) : 수행할 표현식 수행할 표현식 ... def 키워드는 파이썬에서 함수를 선언 할때 사용 되는 키워드이며, 함수명은 사용자가 임의 지정한다. 함수명 ..
[Python] 시퀀스 자료형 #4 딕셔너리(dict) 이번 강좌에서는 파이썬에 키와 값(key-value)을 같이 저장 할 수 있는 dictionary 시퀀스에 대해 알아 보도록 한다. 목차 리스트(list) 튜플(tuple) 셑(set) >> 딕셔너리(dict) 딕셔너리(Dictionary) 란? "키"와 "값" 형태로 데이터를 저장하는 자료구조. 중복키를 허용하지 않는다. 타입 이름으로 "dict"를 사용한다. 배열 연산자를 통해 요소 접근이 가능하다. 수정이 가능한 mutable 타입이다. 딕셔너리(Dictionary)의 생성 1. 타입 이름 'dict' 사용 # 타입 이름 'dict'를 이용해 생성 d = dict(name = "kim", age = 20, addr = "seoul") print(d) # {'name': 'kim', 'age': 20..
[Python] 시퀀스 자료형 #3 셑(set) 이번 강좌에서는 파이썬에서 수학적 집합 연산을 제공하는 시퀀스인 set에 대해 알아 보도록 하겠다. 목차 리스트(list) 튜플(tuple) >> 셑(set) 딕셔너리(dict) 셑(set) 이란? 파이썬에서 "수학적 집합 연산(교집합, 합집합, 차집합)을 제공하는 시퀀스다. 요소의 중복을 허용하지 않고 순서를 유지하지 않는다 배열 연산자를 통해 요소에 접근 할 수 없다 s3 = set('hello') # set은 중복을 허용하지 않고 순서를 유지하지 않는다 print(s3) # {'e', 'o', 'h', 'l'} print(s3[0]) # 배열 연산자를 통해 요소 접근 불가 셑(set)의 생성 1. 타입 이름 'set' 사용 # set 데이터 타입 이름으로 생성 s1 = set([1, 2, 3]) p..

반응형