post-custom-banner

자바스크립트 숫자 반복

  • repeat()

예) let star_image = '⭐'.repeat(star)
(변수 star는 숫자!!)

터미널

  • 터미널 열기 단축키
    - Ctrl + 백틱(`)
  • 터미널이란?
    - 사용자가 텍스트로 명령어를 입력하면, 결과를 텍스트로 화면에 출력해주는 도구
  • 터미널의 쓰임
    - 파이선 라이브러리를 설치하고, 파이썬 프로젝트를 실행하는데 사용
  • 사용하는 이유
    - 명령어를 적어 작동시키는 것이 빠르고 편리하기 때문
    - 요새는 GUI(눈에 보이는 아이콘으로 상호작용하는 방식)이 잘 되어 있어 사용하는 경우가 줄어들고 있지만, 코딩할 때는 명령어를 입력하는 방식을 자주 보게 될 것

Python

파이썬 기초 문법

변수&기본연산

a = 3 # 3을 a에 넣는다
b = a # a를 b에 넣는다
a = a + 1 		# a+1을 다시 a에 넣는다
num1 = a*b 		# a*b의 값을 num1이라는 변수에 넣는다
num2 = 99 		# 99의 값을 num2이라는 변수에 넣는다
# 변수의 이름은 마음대로 지을 수 있음!
# 알아보기 쉽게 직관적으로 지을 것!

자료형

숫자, 문자형

name = 'bob' 		# 변수에는 문자열이 들어갈 수도 있고,
num = 12 # 숫자가 들어갈 수도 있고,
is_number = True 		# True 또는 False -> "Boolean"형이 들어갈 수도 있습니다.
#########
# 그리고 List, Dictionary 도 들어갈 수도 있죠.

리스트 형 (Javascript의 배열형과 동일)

a=['사과','배','감']
print(a[0]) #사과

Dictionary 형 (Javascript의 Dictionary형과 동일)

a= {}
a= {'name':'영수','age':24}

# a의 값은? {'name':'영수','age':24}
# a['name']의 값은? '영수'

함수

함수의 정의 : 이름은 마음대로 정할 수 있음!

# 참고: 자바스크립트에서는
function f(x) {
	return 2*x+3
}

# 파이썬에서
def f(x):
	return 2*x+3

y = f(2)
y의 값은? 7

함수의 응용

def hey():
	print("헤이")
    
#파이썬에서 함수 생성시, 들여쓰기는 중요해요!(이게 내용물이다 하고 인식하는 방법)

hey() #헤이

def sum(a,b,c):
	return a+b+c
    
result = sum(1,2,3)
print(result) #6

조건문

if/else

age = 25

if age > 20:
	print("성인입니다")
else:
	print("청소년입니다")

반복문

파이썬 에서의 반복문은, 리스트의 요소들을 하나씩 꺼내쓰는 형태

fruits = ['사과','배','감','귤']

for fruit in fruits:
	print(fruit)
    
# 사과, 배, 감, 귤 하나씩 꺼내어 찍힙니다.
ages =[5,10,13,23,25,9]

for a in ages:
	if a>20:
		print("성인입니다")
	else:
		print("청소년입니다")

파이썬 패키지 설치하기

패키지 설치 = 외부 라이브러리 설치

  • python에서 패키지는 모듈(일종의 기능들 묶음)을 모아 놓은 단위
  • 이런 패키지의 묶음을 라이브러리라고 볼 수 있음
  • 여기서는 외부 라이브러리를 사용하기 위해 패키지를 설치

가상환경 venv - 패키지를 담아두는 공구함 (라이브러리를 담아두는 폴더)

가상환경(virtual environment)이란

같은 시스템에서 실행되는 다른 파이썬 응용 프로그램들의 동작에 영향을 주지 않기 위해, 파이썬 배포 패키지들을 설치하거나 업그레이드하는 것을 가능하게 하는 격리된 실행 환경

venv 생성 & 활성화하기

pythonprac 폴더에서

python -m venv venv

터미널에서 (venv)라고 뜨면 가상환경이 활성화 된 것임.

pip(python install package) 사용 - requests 패키지 설치해보기

앱을 설치할 때 앱스토어/플레이스토어를 가듯이, 새로운 프로젝트의 라이브러리를 가상환경(공구함)에 설치하려면 pip를 이용

pip install requests
  • requests 라이브러리
    => Fetch 역할 : 서버에서 데이터를 가져와서 보는 것

패키지 사용하기

import requests

r = requests.get('http://spartacodingclub.shop/sparta_api/seoulair')
rjson = r.json()

rows = rjson['RealtimeCityAir']['row']

for a in rows:
	gu_name = a['MSRSTE_NM']
	gu_mise = a['IDEX_MVL']
	print(gu_name, gu_mise)

웹 스크래핑(크롤링)

웹 페이지에서 어떤 정보들을 가지고 오는 것

패키지 추가 설치하기(beautifulsoup4)

pip install bs4

크로링 기본 세팅

import requests
from bs4 import BeautifulSoup

URL = "https://movie.daum.net/ranking/reservation"
headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}
data = requests.get(URL, headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')

select / select_one

  • 태그 안의 텍스트를 찍고 싶을 때 => 태그.text
  • 태그 안의 속성을 찍고 싶을 때 => 태그['속성']
  • 개발자 도구에서 뼈대 가져오기
    1. 개발자 모드 켜기(F12)
    2. 원하는 태그에서 마우스 오른쪽 클릭
    3. Copy -> copy selector로 선택자 복사
    업로드중..

soup.select_one()으로 셀렉터 값을 넣고 원하는 뼈대만 꺼내보기

title = soup.select_one("#mainContent > div > div.box_ranking > ol > li:nth-child(1) > div > div.thumb_cont > strong > a").text
print(title)
  • 선택자를 사용하는 방법 (copy selector)
    soup.select('태그명')
    soup.select('.클래스명')
    soup.select('#아이디명')
    soup.select('상위태그명 > 하위태그명 > 하위태그명')
    soup.select('상위태그명.클래스명 > 하위태그명.클래스명')
  • 태그와 속성값으로 찾는 방법
    soup.select('태그명[속성="값"]')
  • 한 개만 가져오고 싶은 경우
    soup.select_one('위와 동일')
  • 공백제거
    .strip()
    앞뒤로 붙은 띄어쓰기들을 다 없애줌
    .replace(',', '')
    특정 문자를 없애줌
    예) title = v.select_one(".tit_item").text.replace(',', '')

DB

DB를 쓰는 이유 : 데이터를 잘 찾기 위해서

DB 종류 : SQL, NoSQL

SQL(RDBMS)

이미 정해진 칸에 데이터를 넣는 것(엑셀과 유사)

  • 장점
    - 정형화되어 있는 만큼 데이터의 일관성이나 분석에 용이할 수 있다.
    - 사람이 실수할 일이 없다.(데이터가 빠지면 알려줌)
    - 데이터를 더 빠르게 가져올 수 있다.
  • 단점
    - 데이터 50만 개가 적재된 상태에서 갑자기 중간에 열을 하나 더하기는 어려울 것

예) MS-SQL, My-SQL 등

NoSQL(not only sql)

딕셔녀리 형태로 데이터를 저장

  • 장점
    - 정형화된 틀이 없다.(자유로은 형태의 데이터 적재에 유리)
    - 데이터 하나 하나 마다 같은 값들을 가질 필요가 없다.
    (어떤 손님은 이름, 전화번호를 받고 어떤 손님은 이름, 전화번호, 나이를 받고)
    - 비즈니스의 유연성을 크게 담보

예) MongoDB

=> 주로 스타트업은 NoSQL에서 SQL로 넘어가는 경우가 많다.

DB의 실체

요즘에는 내 컴퓨터에 DB를 만들지 않고 인터넷에 있는 컴퓨터(클라우드 환경)에 올려놓는다.

MongoDB - Atlas(클라우드 서비스) 가입하기

https://account.mongodb.com/account/register
구글계정으로 가입 후
Build a Database
계정통일(sparta / test)
IP Adress : 0.0.0.0

MongoDB 연결하기

mongoDB를 조작하려면 2개의 라이브러리(pymongo, dnspython)가 필요

  • 패키지 설치하기
pip install dnspython
pip install pymongo
  • pymongo 기본코드
from pymongo import MongoClient
client = MongoClient('여기에 URL(mongoDB 주소) 입력')
db = client.dbsparta
  • mongoDB와 Python 연결
    - mongo atlas 화면에서 Connect 를 클릭
    - 연결 방법 화면에서 Connect your application 을 클릭
    - 드라이버: Python / 버전 : 3.6 or later 로 클릭, 아래에 생성된 주소를 복사
    - url 복사 붙여 넣기
    - password 부분 수정하기

pymongo 사용법

  • 저장 - 예시
doc = {'name':'bobby','age':21}
db.users.insert_one(doc)
  • 한 개 찾기 - 예시
user = db.users.find_one({'name':'bobby'})
  • 여러개 찾기 - 예시 ( _id 값은 제외하고 출력)
all_users = list(db.users.find({},{'_id':False}))
//{} : 조건(지금 조건 없음)
//{'_id':False} : _id를 안보겠다
  • 바꾸기 - 예시
db.users.update_one({'name':'bobby'},{'$set':{'age':19}})
  • 지우기 - 예시
db.users.delete_one({'name':'bobby'})

(출처 : 스파르타코딩클럽)

post-custom-banner

0개의 댓글