분류 전체보기
[Python] - 모듈탐구 random - Python을 처음하신다구요? 그런당신을 위해 준비했습니다!
2번째 모듈 탐구 이번 살펴볼 모듈은 random이다. 사실 random을 컴퓨터에서 완전히 구현하는 것은 불가하다고 본다. 일정수의 주기를 가지고 생성하는 유사 난수 생성기(PRING)로 난수를 생성하게 되는데, 이 난수를 더욱 잘 처리할 수 있게 도와주는 모듈이 random 모듈이다. 일단 random모듈에서 제공하는 함수는 Random 클래스에 정의된 클래스 메서드 이다.(random 모듈에서 제공하는 클래스는 random과 systemrandom 2가지이다.) 그중 대부분의 함수는 다음의 random.random()이라는 [0, 1.0) 사이 무작위 float를 반환하는 기본 함수에 의존한다. 난수 생성기를 관리하는 함수 random.seed(a=None) : 난수 생성기는 무엇을 기준으로 난수를..
[Python] - 모듈탐구 time - Python 멈춰!
모듈 탐구 그 첫 번째 시간 time 함수이다. 사실 필자는 time 모듈을 사용하면서 sleep함수나 strptime 등 쓰던 함수만 쓰는 일이 다수 있지만.... 이번 기회에 time 모듈을 조금 공부하면서 아는 지식을 정리하고자 한다. 일단 용어를 정리하고 가야한다. * 에포크(epoch) : 시간이 시작되는 시점(태초에 만물이 있을 지어니...) 플랫폼에 따라 다른데 예를 들면 유닉스는 1970년 1월 1일 00:00:00(UTC)이다. time.gmtime(0)로 알아볼 수 있다. * UTC : 협정 세계시로, 그리니치 표준시인 GMT로 알려져 있다. * DST : 일광 절약 시간으로 일 년 중 일부 기간 시간대를 한 시간 조정하는(서머타임)이다. 먼저 에포크 이후의 시간은 time.time()..
[Python] - Python과 매우 친해지기-데코레이터(Decorator)
먼길 오느라 수고들 많으셨습니다. 이번 포스팅은 Python과 매우 친해지기 그 마지막 시간인 Decorator이다. 물론 여기까지로 Python의 100%를 안다고 생각하면 큰 오산이다. 다음 시간부터는 모듈 알아보기 포스팅을 올릴 예정이니, 계속해서 Python에 대한 애정을 멈추지 말아주었으면 한다. Decorator 여러분이 만들고 있는 함수의 프로그램 동작시간을 측정한다고 가정을 하자. 간단하게 import datetime모듈의 현재시간을 출력하는 datetime.datetime.now() 함수를 이용해보자. ## 코드 : import datetime def add(val1, val2) : print(datetime.datetime.now()) print(val1+val2) print(datet..
[Python] - Python과 매우 친해지기-람다(Lambda)
lambda는 간단하게 함수를 생성할 수 있게 도와주는 예약어이다. 이렇게 생성된 함수를 람다 함수 또는 익명함수라고도 부른다. 람다로 생성을 한 함수들은 여러 가지 내장 함수들로 조금 더 정밀한 코드를 작성할 수 있는데, 자세한 것은 아래 사용 코드를 보고 이야기하자 Lambda의 정의와 사용 람다함수는 다음과 같이 생성, 사용한다. >>> my_foo = lambda x : x+3 >>> my_foo(3) 6 >>> my_foo(5) 8 일반 함수처럼 정의했다면 다음과 같은 코드였을 것이다. def my_foo(value) : return value+3 물론 여러개의 인자를 받을 수도 있다. >>> my_foo = lambda x,y,z : x*y*z >>> my_foo(1,2,3) 6 사용법이 어렵..
[Python] - Python과 매우 친해지기-내포(Comprehension)
이제 매우 친해지기의 강의도 얼마 남지 않았다.(아마 decorator와 lambda까지 하면 여러분이 Python과 충분히 친해진 것을 느낄 것이다.) 이번 시간에는 Python이 제공하는 깔끔하고 멋있는 기능인 내포에 대해서 알아보자 LIST Comprehension 일단 내포가 무엇인지를 알아야한다. 내포는 자료구조 안에 for와 if 등을 활용하여 코드를 직관적이고 단순하게 하고, 실행 속도의 향상도 도모하는 All stat 아이템 같은 존재이다. 다음 코드는 0부터 9까지 짝수만을 선택하여 my_list로 만드는 코드이다. >>> my_list = [x for x in range(10) if x%2==0] >>> my_list [0, 2, 4, 6, 8] 다음과 같이 for를 중첩하여 생성할 수..
[Python] - Python과 매우 친해지기-Iterator와 Generator
예약어 시간 for문의 정의를 본 사람은 Iterable이라는 말을 보았을 것이다.(안 썼나?) 이번 시간에는 Iterator에 대해서 알아보면서 우리가 사용하는 반복문을 조금 더 높은 수준으로 올려보자 Iterable 한 것과 Iterator Iterable 하다는 것은 문자 그대로 반복이 가능하다는 의미를 가진다. 즉 다음과 같은 객체들은 for, enumerate에서 반복할 수 있다. Iterable 한 객체 : list, dict, set, tuple, range, str 등등 Iterable 한 객체들은 내부적으로 __iter__() 매소드를 가지고 있다. 이를 이용하여 아래와 같은 Iterator 객체를 생성할 수 있다. >> my_list = [1,2,3,4,5,6,7,8,9,10] >> m..