본문 바로가기

프로그래밍/파이썬

(14)
[파이썬] dict타입을 인덱스로 접근하기 dict를 인덱스로 접근하기 문제 items = {'cabbage' : 5000, 'Daikon' : 2000, 'Lettuce' : 3000} 다음과 같은 상품이 있다. 사용자의 입력 을 받아 해당 상품의 가격 을 출력하고자 한다. 해결방법 for index, (key, elem) in enumerate(items.items()): print(index, key, elem) print("Select Item(1-3) = ") goodsIdx = int(input()) print("Total Price : {} ".format(list(item.values())[goodsIdx-1])) enumerate 함수를 사용한다. item.values를 list로 만들어준다. 2번이 핵심이라고 볼 수 있다. it..
[파이썬] pyenv, virtualenv 설치 및 가상환경 생성하기 pyenv, virtualenv Pyenv와 Virtualenv 설정하기 OS : Ubuntu 16.04 LTS Mac OS X : 10.11 왜 설치해야 하죠? pyenv는 로컬환경(즉, 나의 컴퓨터)에 다양한 파이썬 버전을 확인할 수 있습니다. 요약을 하면 "쉽게 설치할 수 있다" 라는 것을 강조하고 싶습니다. "엥!? 파이썬만 설치하면 되는거 아냐?" 라고 생각하실 수 있지만, 사실 python에 기반한 수많은 배포판들이 존재합니다. Anaconda : 파이썬 기반의 개방형 데이터 과학에 특화된 플랫폼입니다. Jython : 파이썬으로 자바를 구현한 플랫폼입니다. pypy : 파이썬은 C로 짜였습니다. pypy는 파이썬으로 파이썬을 만들었습니다. 사용해볼 일이 있을까? 라는 생각이 들겠지만 특정 상..
[파이썬] pyenv, virtualenv, pip 이해하기 pyenv 개요 pyenv : 다양한 파이썬 버전을 설치하고 사용할 수 있도록 함. pyenv를 통해서 파이썬 버전에 대한 의존성을 해결할 수 있다. virtualenv : 로컬에 다양한 파이썬 환경을 구축할 수 있도록 도와준다. 일반적으로 pip install 명령어를 통해서 패키지를 설치한다. autoenv : autoenv 스크립트를 이용해서 (가상환경으로 설정한) 특정 프로젝트 폴더로 들어가면 .env파일을 찾아서 자동으로 개발 환경을 로딩해준다. pyenv 설치, 버전확인 pyenv version : 현재 사용하고 있는 파이썬 버전을 알려준다. pyenv versions : 로컬에 설치된 파이썬 리스트를 보여준다. pyenv install --list : 설치할 수 있는 파이썬 리스트를 보여준다..
[파이썬] 정규표현식(regular expression) 정규표현식 정규표현식(Regular Expressions) re 모듈 : 파이썬 정규 표현식을 지원한다. 파이썬에서는 정규 표현식을 지원하기 위해 re(regular expression) 모듈을 제공한다. 자바(JAVA)에서 패턴 객체(p)의 메서드는 조금 다르니, 자바 API 를 참고하도록 하자. import re 를 통해 모듈을 임포트한 뒤, p = re.compile('정규표현식')을 통해서 정규표현식을 컴파일하고, 컴파일된 패턴 객체(p)를 이용하여 이 객체가 가지고 있는 메서드를 통해 작업을 수행할 수 있다. 어떻게 사용하는가? 첫번째 방법 : 컴파일 후 매칭 import re # 정규표현식 모듈 p = re.compile('[a-z]+') # re 내장모듈 내(.) compile 메서드를 사용..
[파이썬] get/set 속성값과 프로퍼티(property) get, set 프로퍼티 0. 들어가기 전에 이번에 다룰 내용은 객체의 속성(attribute)을 다루는 주제로 포스팅할 것입니다. 오늘 배울 getter메서드와 setter 메서드는 객체의 변수(속성)를 읽고, 변경하는데 사용합니다. TIP : 객체(Object) = 속성(attribute) + 기능(Method) 1. get/set 속성값과 프로퍼티의 개념 자바와 같은 객체 지향 언어에서는 외부로부터 바로 접근할 수 없는 prviate 객체 속성을 지원합니다. 이러한 언어에서는 private 속성의 값을 읽고(get) 변경(set)하기 위해 getter 메서드와 setter 메서드를 사용합니다. 하지만, 파이썬에는 getter 메서드나 setter메서드가 없습니다. 파이썬에서 선언되는 모든 속성(변수..
[파이썬] 제너레이터(Generator) 이해하기 decorator 제너레이터(Generator) 1. 기존 방식 ######################################### 기본 예제 def square_numbers(nums): result = [] for i in nums: result.append(i*i) return result my_nums = square_numbers([1,2,3,4,5])print(my_nums)print(type(my_nums)) >>> 출력결과> [1, 4, 9, 16, 25]> >######################################### 제너레이터로 만들기 def square_numbers(nums): for i in nums: yield i * i my_nums = square_num..
[파이썬] 데코레이터(Decorator) 이해하기 decorator 데커레이터(Decorator) 사전 개념 데커레이터를 이해하기 위해서는 아래와 같은 3가지 개념이 사전에 필요하다. 가장 간단하게 설명하면 일급 객체 함수 내에 함수를 정의할 수 있다 함수를 인자로 전달할 수 있다. 클로저 내부(inner) 함수가 외부(outer) 함수의 인자를 기억하고 있는 것 *args(위치 인자)와 **kwargs(키워드 인자) *args(위치인자) : 인자가 순서가 있음 ## 위치 인자 def sum(*args): sum = 0 for i in args: sum += i return sum print(sum(5,3,1,2)) ## 키워드 인자 def print_kwargs(**kwargs):print("키워드인자를 출력 : ", kwargs) # print_kw..
[파이썬] 클로져(Closure) 이해하기 클로저(Closure) 함수 내부함수 클로저(Closure) 함수를 배우기 전에, 내부 함수에 대해 먼저 알아야 한다. 일급 객체 의 특징중에서 함수 내에 함수를 정의 할 수 있다고 했다. 이를 내부 함수(inner function)이라고 한다. def outer_fucntion(a, b): def inner_function(c, d): return c + d return inner(a, b) print(outer_function(3, 5)) >>> 출력결과> 8 심화하기 : 내부 함수(inner function)은 루프나 코드 중복을 피하기 위해 또 다른 함수 내에 어떤 복잡한 작업을 한 번 이상 수행할 때 유용하게 사용한다. 클로저(closure) 1부 : 개념 익히기 위에서 간단하게 내부 함수가 무..