목록파이썬(Python) (19)
imhamburger 님의 블로그
pyenv는 virtualenv 를 제공한다. 이건 가상환경을 만들어 가상환경 안에서 여러 버전의 파이썬을 사용해 볼 수 있다.가상환경의 주요 특징은 철저히 '격리된 공간'이라는 것이다. 가상환경 안에서 어떤 패키지를 설치하였다고 가정해보자.그 패키지는 가상환경 안에서만 동작할 것이고, 해당 가상환경이 아닌 다른 곳에서 시도하면 오류가 날 것이다. 그리고 pyenv가 여러 버전의 파이썬을 사용하고 관리하는 툴이라는 건 지난 글에서 소개하였다. virtualenv에서도 당연히 설치한 특정 버전의 파이썬 버전을 이용할 수 있다. virtualenv를 사용하는 방법은 쉽다.$ pyenv virtualenv {사용할 파이썬 버전} {가상환경 이름}위의 코드를 사용한 예시를 보여주자면 pyenv virtualen..
pyenv 는 여러 버전의 파이썬을 실행 및 관리할 수 있는 프로그램이다. 파이썬은 가장 최근 버전을 사용하는게 좋은게 아닌가? 라고 생각할 수 있겠지만,회사에서 옛날 데이터를 다룰 때 구버전의 파이썬을 이용했다면 해당 버전으로 확인해야하기 때문에 여러 버전의 파이썬을 실행하고 관리할 수 있는 pyenv 가 있어야 한다.다양한 파이썬 버전으로 테스트해 볼 수 있다.다른 버전의 파이썬 프로젝트를 해야할 때 편리하다.최신 버전의 파이썬 기능을 써보고 싶을 때 테스트해 볼 수 있다. pyenv 설치는 깃허브에 올라와있는 공식문서를 확인하면 된다. 나는 맥이어서 brew install pyenv로 설치하였다.간혹, 아래 사진처럼 C Compiler 어쩌고저쩌고 에러가 날 수 있다.pyenv를 설치하기 전 os에..
클래스는 똑같은 무엇인가를 계속해서 만들어 낼 수 있는 설계 도면이다. 그리고 그 설계도면을 이용해 만든 제품을 객체라 부른다.만약, 각기 다른 종류의 햄버거를 100개 이상 생산한다고 가정해보자. 함수를 일일이 100개씩 만들어야 하는 엄청난 수작업이 필요하게 된다. 하지만 그러한 수고를 덜어주는 것이 바로 클래스다. 클래스를 사용할 땐 정해진 규칙이 있다. 이 규칙대로 코드를 적어줘야 한다. 이는 객체를 만들 때 실행되는 함수인데 다른말로 생성자라고 부른다. 예시class Hamburger: def __init__(self,변수명): #여기서 self는 객체 자기자신을 뜻한다. self.변수명 = @@#자세한 예시class Hamburger: def __init__(self,name): ..
모듈이란 프로그램을 구성하는 시스템을 기능 단위로 독립적인 부분으로 분리한 것이다. 간단하게 그냥 기능별로 자른 것이다.주피터랩에서 파일을 저장하면 .ipynb 이라는 확장자로 저장된다.이를 모듈파일로 변환하려면 주피터랩의 명령 프롬프트 혹은 터미널에서 다음 명령어를 실행한다.jupyter nbconvert --to script 파일명.ipynb 주피터랩에 전체코드가 아닌 셀마다 코드를 저장하고 싶을 땐, 코드 맨위에 아래와 같은 코드를 작성한다.%%writefile 파일명.py 단, 모듈을 저장할 때는 숫자가 앞에 와서는 안된다. 하나의 모듈을 불러올 때는 import 저장한 모듈의 이름 을 코드 맨 위에 적어주면 된다.import 파일명 #모듈 불러오기import 파일명 as test #모듈에 '..
함수를 사용하면 반복적인 코드의 양을 줄여 유지보수성을 높여준다. 예시def 함수이름(a, b, c):"""모든 값을 더한다. #함수에 대한 설명"""test = a + b + creturn test lambda 표현식은 함수명을 지정하지 않아도 함수를 만들 수 있다.lambda[parameters]: expression 예시#lambda[parameters]: expressionlambda x: x * 2#(lambda x: x * 2)(10)#출력: 20#아래 함수식과 같다.def test(x):return x * 2#print(test(10))#출력: 20 map을 사용하여 lambda 함수 응용하기map은 리스트 혹은 튜플 같은 여러개의 자료를 이용해 각 요소에 함수를 적용해준다.a = list(..
리스트 컴프리핸션은 리스트를 만들기 위해 사용하는 방법을 말한다.list1 = [expression for 변수 in iterable] 예시#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]list1 = [i for i in range(10)]#[3, 6, 9]list2 = [i for i in range(10) if i % 3 == 0]#조건없이 간단하게 리스트를 만들수도 있다.#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]list1 = list(range(10)) 화면출력#내장함수 활용print()#sep가 기본값으로 " " 공백을 가지고 있어서 값 사이에 ','을 추가하고싶으면 저렇게 표현하면 된다.print(a, b, c, sep=", ")#end 값을 초기화하여 줄바꿈이 되지 않는..
세트(Set)세트는 다음과 같은 메소드를 가진다.add요소 추가remove요소 삭제discard요소 삭제pop요소를 가져오면서 삭제 그럼 remove와 discard의 차이는 뭐지?remove는 없는 요소를 지우라고 명령할 시 Error를 발생시키지만, discard는 없는 요소여도 에러가 발생하지 않는다. (흠, 그러면 어떤 경우에 쓰일까?)set1 = set()set1.add(2)set1.remove(2)set1.discard(2) #정상작동 세트는 index가 없기 때문에 pop을 쓰면 어떤 랜덤한 요소가 삭제되니 유의하자! Set의 집합 연산#합집합set.union(a, b) #'|' 엔터키 위에 있는 요 막대기로 써도 된다. set(a) | set(b) #교집합set.intersaction(a..
리스트는 변할 수 있는(mutable) 속성이며, 튜플은 (immutable) 변할 수 없는 속성을 가지고 있다.따라서 리스트는 넣고 빼고 삭제하고 추가하고 다 가능하지만, 튜플은 불가능하다. list1 = [1, 2, 3, 4, 5]list1.pop()5[1, 2, 3, 4] 리스트에서 쓸 수 있는 함수 중에 pop이 신기해서 조금 끄적여본다.pop은 맨 뒤의 요소를 가져오면서 그와 동시에 리스트에서 삭제시킨다.다른 append, extend 등 함수와는 다르게, 요소를 가져오면서 리스트 안에서도 삭제시키는 2가지 일을 동시에 한다.그게 조금 신기한 부분이다. #()소괄호가 없어도 튜플이다.tuple1 = 1, 2, 3, 4, 5 tuple은 원래 ()소괄호를 쓰는 것이 정석?이지만, 굳이 쓰지않아도 ..
만약 작은 따옴표를 텍스트 자체로 쓰고 싶다면?백슬래시 '\' 를 작은 따옴표 앞에 붙여서 써야한다. 예시#I'm hamburger를 출력하고 싶다.text = 'I\'m hamburger'print(text) 문자열 리터럴 안에 \n이라는 것은 줄바꿈을 의미한다. 예시#Hello#I'm hamburger#라는 문장을 두 줄로 보여주고 싶다.text = 'Hello\nI\'m hamburger'print(text) 경우에 따라 \n 을 그대로 출력하고 싶은 경우엔?1. raw str 사용 (문장 맨 앞에 r을 추가한다.)2. \\ 역슬래시를 두번써서 \ 문자 그대로 출력되게끔 한다. 예시text1 = r'c:\name'text2 = 'c:\\name' 삼중 따옴표를 사용하면,예시text = """동해물과..