Python 304

[Python] tuple

Tuple 리스트와 유사하지만 리스트와는 다르게 변하지 않는 순서와 값의 집합이다. 대표적으로 여러 값을 한 번에 저장하거나 변수 두 개의 값을 서로 변경할 때 사용한다. 선언 및 초기화 소괄호는 생략이 가능하면, 튜플 내의 값은 쉼표로 구분한다. 튜플 내 자료형은 동일하지 않아도 괜찮다. 튜플 내에 튜플이 포함될 수도 있다. 튜플 내에 한 개의 원소만 존재하면 튜플로 취급하지 않으나, 원소 뒤에 쉼표를 찍으면 튜플로 취급할 수 있다. t1 = () t2 = (1, "a") t3 = 1, "a" t4 = (1, "a", (1, "a")) t5 = (1,) 인덱싱 순서가 있기 때문에 인덱스로 접근 가능하다. t[1] 슬라이싱 t[1:] 튜플 합치기 + 연산자로 튜플을 합칠 수 있다. t = t2 + t3 ..

Python 2021.10.28

[Python] 날짜 비교

Python에서는 datetime 또는 time 모듈을 이용해 날짜를 비교할 수 있다. 1. time.strptime() 사용 특정 포맷의 문자열을 time_struct형 데이터로 변환하는 strptime() 사용하여 비교한다. 참고 : 2021.10.18 - [python] time 모듈 코드 import time print(time.strptime("1990-3-26", "%Y-%m-%d") < time.strptime("2021-3-26", "%Y-%m-%d")) 실행 결과 2. datetime.date() 사용 날짜를 표현하는데 사용하는 클래스로, 클래스 생성자는 년, 월, 일을 인자로 받는다. 코드 import datetime print(datetime.date(1990, 3, 26) < dat..

Python 2021.10.26

[Python] 거듭제곱

Python에서 거듭제곱을 하는 방법을 세 가지 정도로 정리한다. 1. ** ** 연산자는 거듭제곱 연산을 의미한다. print(base ** exp) # 예시 print(2 ** 4) 실행 결과 2. pow(base, exp [, mod]) 내장 함수로 정의된 pow 함수다. 세 번째 매개변수를 생략하면 단순 제곱 연산을 하며, mod 값을 주면 거듭제곱의 나머지 연산을 한다. 수식으로 표현하면 아래와 같다. $$ base^{exp} \bmod{mod} $$ pow(base, exp) pow(base, exp, mod) # 예시 print(pow(2, 4)) print(pow(2, 4, 3)) 실행 결과 3. math.pow(base, exp) math 라이브러리에 정의된 함수로, float형 매개변수..

Python 2021.10.20

[python] time 모듈

time 간단한 시간 데이터를 처리할 때 사용하는 파이썬 내장 모듈 주로 epoch time을 다룰 때 사용한다 Epoch Time Unix Time, POPIX Time UTC를 기준으로 1970년 1월 1일 0시 0분 0초로부터의 경과 시간을 나타낸다. 흔히 timestamp라고 하기도 한다. 시간대, 윤년, 윤달, 양력, 응력 등의 개념 등을 모델링하지 않고 시간을 단순히 숫자로 저장하고 처리할 수 있다. time_struct 인간 친화적이지 않은 timestamp가 주어졌을 때, time 모듈이 날짜와 시간을 표현하기 위해 사용하는 클래스 이름 속성 비고 tm_year 연도 2021, 1992 tm_mon 달 1~12 tm_mday 일 1~31 tm_hour 시 0~23 tm_min 분 0~59 ..

Python 2021.10.18

[python] 여러 값을 한 줄로 입력 받기

아래 몇 가지 함수를 이용하면 한 줄로 입력받은 각각의 값을 변수에 저장할 수 있다. 먼저 필요한 함수를 먼저 살펴본다. input() 사용자가 입력한 값을 문자열로 취급하여 변수에 저장할 수 있다. 코드 a = input() # 프롬프트에 메세지 출력 b = input("enter text: ") split() 매개변수로 전달받은 문자열을 기준으로 문자열을 나누어 리스트로 반환한다. 전달받은 문자 값이 없는 경우 스페이스, 탭, 엔터 등의 공백을 기준으로 문자열을 나눈다. map(function, interable) 내장 함수로 입력받은 반복 가능한 자료형에 대해 입력받은 함수를 수행하여 반환한다. 보통 여러 개의 데이터를 한 번에 다른 형태로 변환하기 위해 사용한다. map 객체를 반환하기 때문에 객..

Python 2021.10.09

[Selenium] Element 텍스트 읽기

selenium에서 특정 Element의 텍스트 값을 읽는 방법을 적어둔다. 크롬 드라이버 기준이다. text 기본적으로 특정 Element의 텍스트 값을 읽을 때는 text 함수를 호출한다. text 함수는 엘리먼트의 text property를 읽는다. text = driver.find_element_by_xpath('').text ## 구현부 def text(self): """The text of the element.""" return self._execute(Command.GET_ELEMENT_TEXT)['value'] 하지만 엘리먼트 내에 문자가 존재함에도 불구하고 빈 문자열을 반환하는 경우도 존재한다. 요소에 text property가 없어서 다른 속성에 값이 설정되어 있기 때문인 듯하다. g..

Python 2021.09.15

virtualenv - Python 버전 지정

virtualenv를 새로 생성할 때 아무 옵션을 지정하지 않으면, PATH 등으로 설정된 기본 파이썬 버전으로 가상 환경이 생성된다. 하지만 종종 기본값이 아니라 다른 버전의 파이썬을 사용해야 할 때가 있다. 이런 경우에는 -p 옵션을 이용해 사용할 파이썬을 지정할 수 있다. 방법 virtualenv -p # -p : --python. 파이썬 버전 지정 # 예시 virtualenv venv -p python3.8 + global로 설치된 패키지 접근 필요시 virtaulenv venv--system-site-packages 추가로 보통 virtualenv 환경은 홈 디렉터리에서 관리하는 게 편하다고 한다. ~/.venv/

Python 2021.09.10

[Selenium] 다음 로그인하기

브라우저 제어 도구인 Selenium을 이용해 다음(www.daum.net)에 로그인하는 코드를 작성하려고 한다. 설치 과정은 2021.07.14 - [CentOS] Chrome 및 Selenium 설치 을 참고한다. 다음 로그인 과정 프로그램을 작성하기 전에 먼저 다음 로그인을 하기 위해서는 어떤 과정이 필요한지 확인해본다. 1. 다음(www.daum.net) 홈페이지 접속 2. 로그인 방식 선택 이 글에서는 '카카오 계정으로 로그인' 하려고 한다. 3. 계정 정보 입력 4. 로그인 버튼 클릭 위 과정에 따라 코드를 작성하도록 한다. 코드 작성 1. 라이브러리 import 및 크롬 드라이버 선언 from selenium import webdriver driver_path = 'D:\\projects\\..

Python 2021.09.08

[Python] setup.py install - 수동 설치

보통 python 라이브러리는 package manager인 pip를 이용하여 관리하지만, pip로 관리되지 않고 깃허브 등으로 배포되거나, dev 버전으로 이용하고자 하는 라이브러리는 수동으로 설치해야 한다. 아마 패키지 내에 setup.py라는 파일이 존재하는 것을 발견할 수 있을 것이다. 설치 방법 패키지를 다운로드한 최상위 디렉터리로 이동하여 install 명령을 실행한다. cd python setup.py install # 설치할 파이썬 환경 지정 예시 python3.5 setup.py install /YOUR/PYTHON/PATH setup.py install 예시) python-gitlab 패키지 수동 설치 git clone https://github.com/python-gitlab/pyth..

Python 2021.09.06

activate 없이 virtualenv 환경 이용하기

기본적으로 virtualenv 내 python을 사용해 python 코드를 실행시키기 위해서는 아래의 명령어로 virtualenv를 activate 해야 한다. source /bin/activate 그렇다면 virtualenv 환경은 activate를 해야만 사용할 수 있을까? 결론만 말하자면, virtualenv 내 python의 실행 경로를 직접 지정하면 activate 하지 않아도 virtualenv로 구성한 python과 모듈을 동작시킬 수 있다. 예시 예시로 패키지 충돌을 피하기 위해서 test_env라는 이름의 virtualenv 환경에 python-gitlab이라는 모듈을 설치했다고 가정해보자. 그리고 각 환경에서 python-gitlab 모듈을 import 해보았다. python-gitla..

Python 2021.06.26