[Python] Input/Output
·
프로그래밍/Python
데이터 입력파이썬은 데이터를 입력받을때 Input() 함수를 사용하는데 해당 함수는 기본적으로 데이터를 문자열로 입력받는다. a = input() # hello 입력print(a) # hello 출력a = input() # 123 입력print() # 123 출력 값을 원하는 형태의 자료형으로 입력받고 싶을 땐 다음과 같이 원하는 자료형을 앞에다 붙여주면 된다.a = int(input())b = int(input(),8) # 8진수를 입력받는 형태.c = int(input(),2) # 2진수를 입력받는 형태. 1010을 입력하면 십진수인 10이 할당됨l = list(input()) # abcde 입력print(l) # ['a','b','c','d','e'] 출력 단일 값이 아닌 여러 값을 ..
[Python] 데이터 시각화 라이브러리 - Seaborn
·
프로그래밍/Python
Seaborn 개념   Seaborn은 python에서 제공하는 데이터 시각화를 위한 라이브러리이다. Matplotlib을 기반으로 만들어졌으며, 데이터 시각화를 보다 쉽고 가시적으로 진행할 수 있게끔해준다. seaborn 자체에 내장된 penguins dataset을 활용해 사용법에 익숙해져보자. 사용할 데이터 셋의 구성은 다음과 같다.species : 펭귄 종island : 서식지bill_length_mm : 부리 길이bill_depth_mm : 부리 위아래 두께flipper_length_mm : 팔 길이body_mass_g : 몸무게sex : 성별import seaborn as snsdata = sns.load_dataset('penguins') # 데이터 로드data = data.dropna() ..
[Python] 웹 스크래핑 라이브러리 - Selenium
·
프로그래밍/Python
이전 포스팅에서 알아본 BeautifulSoup는 주로 정적인 웹 페이지에서의 데이터 추출을 위해 사용되는 라이브러리이다. 하지만 우리가 평소 사용하는 웹 사이트는 동적인 웹 페이지로 구성되어있는 경우가 더 많다. 이러한 경우에 사용할 수 있는 웹 스크래핑 도구인 Selenium에 대해서 알아보자. Selenium  Selenium 이란?selenium은 웹 어플리케이션의 동적인 요소와 상호작용하기 위한 자동화 도구로 사용된다. 실제 브라우저를 제어하여 자바스크립트를 실행하고, 클릭, 텍스트 입력 등의 사용자 동작을 시뮬레이션한다. 기본적인 사용법selenium 라이브러리에 있는 webdriver 모듈을 통해 웹 사이트에 직접적으로 접근해 제어가 가능하다. 크롬을 통해 웹 사이트에 접근할 것이기 때문에 ..
[Python] 웹 스크래핑 라이브러리 - beautifulsoup
·
프로그래밍/Python
지난 포스팅에서는 웹 스크래핑과 웹 크롤링 두 가지 개념에 대해서 간략하게 알아봤었다. 오늘은 웹 스크래핑에 사용되는 Python 라이브러리 중 하나인 BeautifulSoup에 대해서 알아보자. BeautifulSoup  BeautifulSoup 란?위에서 말했듯이, BeautifulSoup는 웹 스크래핑을 위한 파이썬 라이브러리이며, 주로 HTML 및 XML 문서에서 데이터를 추출하고 구문을 분석하는 데 사용된다. 일반적으로 requests 메서드를 통해 가져온 값을 HTML로 파싱 후, 변환된 값에 beautifulSoup를 적용하며 사용한다.사용법beautifulSoup의 기본적인 사용법은 다음과 같다. 우선 라이브러리를 import한 후 객체를 생성해 메서드들을 사용하기만 하면 되기때문에 간단히..
[Python] PEP8 스타일
·
프로그래밍/Python
PEP8 스타일   PEP 8PEP8 : 파이썬 개선 제안서, 파이썬 코드를 어떻게 구상할 지 알려주는 스타일 가이드PEP8 전체 가이드다른 사람과 원활하게 협업하려면 공통된 스타일 공유가 필요일관성 있는 스타일은 나중에 수정하기도 쉽다.whitespace한 줄의 문자 길이가 79자 이하여야 한다.함수와 클래스는 빈 줄 두개로 구분한다.클래스에서 메서드는 빈 줄 하나로 구분한다.변수 할당 앞 뒤에 스페이스를 하나만 사용한다.리스트 인덱스, 함수 홏ㄹ, 키워드 인수 할당에는 스페이스를 사용하지 않는다.naming함수, 변수, 속성 : lowercase_underscore보호(protected) 인스턴스 속성 : _leading_underscore비공개(private) 인스턴스 속성 : __double_le..
[Python] 큐(Queue)
·
프로그래밍/Python
큐   큐자료를 보관할 수 있는 선형 구조로 push(enqueue)와 pop(dequeue)이 반대에서 이루어지기 때문에 선입선출(FIFO)방식을 채택한 자료구조이다.큐는 자료를 생성하는 작업과 그 자료를 이용하는 작업이 비동기적으로 일어날 때 사용된다.또한 자료 생성이 여러 곳에서 발생하거나, 자료 이용이 여러 곳에서 발생할 때 사용된다.스택과 마찬가지로 큐 역시 배열(리스트)과 연결 리스트(이중 연결 리스트)를 이용하여 구현가능하다.연산 종류설명배열 시간 복잡도연결 리스트 시간 복잡도size()현재 큐에 들어 있는 데이터 원소 수 반환O(1)O(1)isEmpty()현재 큐가 비어 있는지 판단O(1)O(1)enqueue()원소 x를 큐에 pushO(1)O(1)dequeue()큐의 맨 앞 원소를 반환 ..
[Python] 리스트
·
프로그래밍/Python
리스트   파이썬에는 다른 언어들에서 다뤄지는 배열과 유사한 성질의 리스트(list)라는 자료구조가 존재한다.  동일한 자료형만 가질 수 있는 배열과는 달리, 리스트는 다양한 자료형을 하나의 리스트 안에 담을 수 있다.선언 방법a = [1,2,'a','b',"xyz"]b = []c = list()d = [0]*10 #[0,0,0,0,0,0,0,0,0,0]e = [i*2 for i in range(5)] #[0,2,4,6,8]리스트는 위와 같은 다양한 방법을 통해 선언이 가능하다.연산 a = [1,2,3]b = ['a','b','c']c = a+b #[1,2,3,'a','b','c']d = a*3 #[1,2,3,1,2,3,1,2,3]e = a*0 #[]이처럼 리스트 사이의 덧셈이 가능하며, 곱셈..
[자료구조] 정렬, 탐색
·
프로그래밍/Python
알고리즘 시간 복잡도알고리즘을 풀때는 제한 시간내에 코드가 실행 완료되는것이 중요하다. 이를 위해 우리는 알고리즘의 시간복잡도와 공간 복잡도가 어떠한가를 미리 파악한 후 이에 맞는 문제 풀이 방법을 생각해내야 한다.이러한 복잡도를 표현하는 방법 중 가장 흔히 사용되는 방법은 빅오 표기법(big-O notation)이다.이에 관한 설명은 아래 링크에 자세히 작성되어 있다.https://seung2344.tistory.com/22리스트 파이썬에는 다른 언어들에서 다뤄지는 배열과 유사한 성질의 리스트(list)라는 자료구조가 존재한다. 동일한 자료형만 가질 수 있는 배열과는 달리, 리스트는 다양한 자료형을 하나의 리스트 안에 담을 수 있다.선언 방법a = [1,2,'a','b',"xyz"]b = []c = l..