Python 308

[format] 자릿수를 맞춘 숫자 출력

정수형, 실수형과 같은 숫자 데이터를 다루다 보면 소수점 이하 둘째 자리까지 출력하거나, 또는 세 자리의 정수로 출력하는 등 자리 수를 맞춰서 출력을 해야 할 때가 있다. 즉, 문자열 포매팅 방법에 대해 적어본다. str.format() 서식 지정자(format indentifier)를 사용하여 문자열을 출력한다. 문자열의 중괄호 내에 지정된 키로 매개변수에서 값을 찾아 대입하여 문자열을 만든다. 여기서 키는 매개변수의 위치값인 인덱스가 될 수도 있으며, 인덱스는 0부터 시작한다. a = "index_0" b = "index_1" # index print("{1}".format(a, b)) # key print("{a} {b}".format(a=a, b=b)) 자릿수 지정 서식 출력할 값과 서식은 콜론(..

Python 2021.11.03

[math] 최소공배수, 최대공약수

2021.09.28 - [재귀 호출] 최대공약수 구하기 / 피보나치 수열 [재귀 호출] 최대공약수 구하기 / 피보나치 수열 최대공약수 최대공약수 Greatest Common Disiver, GCD 두 개 이상의 정수의 공통 약수 중 가장 큰 값 방법 1. 정수 중 작은 값부터 1씩 감소시키면서 약수인 값을 찾는다. 2. 유클리드 알고리즘 a와 b의 최 passwd.tistory.com 위 글에서 재귀 호출을 이용해 최대공약수를 계산하는 알고리즘에 대해 다루었다. 최대공약수를 구할 수 있다면 최소공배수도 자연스럽게 구할 수 있다. 두 수의 곱을 최대공약수로 나눈 값이 최소공배수이기 때문이다. $$ gcd(a,b)*lcm(a,b)=a*b $$ 그렇다면 Python으로 최대공배수/최대공약수를 계산할 때 반드시..

Python 2021.11.02

[Python] JSON 데이터 다루기

JSON (제이슨, JavaScript Object Notation) 속성 - 값 쌍 또는 키 - 값 쌍으로 이루어진 데이터 개체를 전달하기 위한 개방형 표준 포맷 { "이름": "홍길동", "나이": 25, "성별": "여", "주소": "서울특별시 양천구 목동", "특기": ["농구", "도술"], "가족관계": {"#": 2, "아버지": "홍판서", "어머니": "춘섬"}, "회사": "경기 수원시 팔달구 우만동" } 인간이 읽을 수 있는 텍스트를 사용하며, 언어 독립형 데이터 포맷이다. 비동기 브라우저/서버 통신에 사용하며 XML을 대체한다. Python에서는 내장 모듈인 json을 이용해 JSON 데이터를 처리할 수 있다. json 모듈 사용 방법 loads() json 문자열을 python ..

Python 2021.11.01

[requests] http cURL 요청 처리

개요 cURL과 같은 웹 요청을 Python으로 처리하는 방법을 적어둔다. cURL; client URL 윈도우와 리눅스에 기본 설치되고 있는 웹 개발 툴 http, https, ftp, sftps, smtp, telnet 등의 다양한 프로토콜을 이용해 데이터를 전송하기 위한 라이브러리와 명령 줄 도구를 제공한다. 명령어 curl -X "" -H "" -d '{}' # -X : --request. 요청 메소드 지정 # -H : --header. HTTP Header에 추가 # -d : --data. HTTP POST data 지정 # 예시 curl -X POST "https://gitlab.example.com/api/v4/projects" -H "Accept-Encoding: gzip" -H "Cont..

Python 2021.10.31

[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