a = 3 # 3을 a에 넣는다
b = a # a를 b에 넣는다
a = a + 1 # a+1을 다시 a에 넣는다
num1 = a*b # a*b의 값을 num1이라는 변수에 넣는다
num2 = 99 # 99의 값을 num2이라는 변수에 넣는다
# 변수의 이름은 마음대로 지을 수 있음!
# 진짜 "마음대로" 짓는 게 좋을까? var1, var2 이렇게?
자료형
- 숫자, 문자형
- 리스트형(Javascript의 벼열형과 동일)
a_list = [] a_list.append(1) # 리스트에 값을 넣는다 a_list.append([2,3]) # 리스트에 [2,3]이라는 리스트를 다시 넣는다 a_list의 값은? [1,[2,3]] a_list[0]의 값은? 1 a_list[1]의 값은? [2,3] a_list[1][0]의 값은? 2
- dictionary 형 (Javascript의 dictionary형과 동일)
a_dict = {} a_dict = {'name':'bob','age':21} a_dict['height'] = 178
- Dictionary 형과 List형의 조합
people = [{'name':'bob','age':20},{'name':'carry','age':38}] people[0]['name']의 값은? 'bob' people[1]['name']의 값은? 'carry' + person = {'name':'john','age':7} people.append(person) people의 값은? [{'name':'bob','age':20},{'name':'carry','age':38},{'name':'john','age':7}] people[2]['name']의 값은? 'john'
함수
def sum_all(a,b,c): return a+b+c def mul(a,b): return a*b result = sum_all(1,2,3) + mul(10,10)
조건문
-if / else로 구성
def oddeven(num): # oddeven이라는 이름의 함수를 정의한다. num을 변수로 받는다. if num % 2 == 0: # num을 2로 나눈 나머지가 0이면 return True # True (참)을 반환한다. else: # 아니면, return False # False (거짓)을 반환한다.
def is_adult(age): if age > 20: print('성인입니다') # 조건이 참이면 성인입니다를 출력 else: print('청소년이에요') # 조건이 거짓이면 청소년이에요를 출력
= 외부 라이브러리 설치
패키지 : 모듈을 모아놓은 단위
라이브러리 : 패키지의 묶음
기본적으로 설치하는 패키지
import - 타겟 url을 읽어서 HTML을 받아오고, (requests)
html을 검색하기 용이한 상태로 만듦 (BeautifulSoup)
select / select_one 을 통해 원하는 정보 가져오기
beautifulsoup 내 select에 미리 정의된 다른 방법
# 선택자를 사용하는 방법 (copy selector) soup.select('태그명') soup.select('.클래스명') soup.select('#아이디명') soup.select('상위태그명 > 하위태그명 > 하위태그명') soup.select('상위태그명.클래스명 > 하위태그명.클래스명') # 태그와 속성값으로 찾는 방법 soup.select('태그명[속성="값"]') # 한 개만 가져오고 싶은 경우 soup.select_one('위와 동일')
크롬 개발자도구 활용
개발자도구 - 원하는 부분 Copy - Copy selector
mongoDB는 눈으로 보이지 않음 = 그래픽인터페이스(GUI)를 제공하지 않음
-->DB 내부를 살펴보기 위한 프로그램을 별도로 설치해줌 = Robo3T
RDBMS(SQL)
: 행/열의 생김새, 정형화되어 있음
ex)MS-SQL,My-SQL 등
No-SQL
: 딕셔너리 형태, 자유로운 형태로 데이터 적재에 유리
ex)MongoDB
from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.dbsparta
db.users.insert_one({'name':'bobby','age':21})
all_users = list(db.users.find({})) <---데이터 모두 보기--->
same_ages = list(db.users.find({'age':21},{'_id':False})) <--- 특정 조건 데이터 보기 --->
user = db.users.find_one({'name':'bobby'}) <---특정 결과값--->
db.users.update_one({'name':'bobby'},{'$set':{'age':19}}
db.users.delete_one({'name':'bobby'})
저장 - 예시
doc = {'name':'bobby','age':21}
db.users.insert_one(doc)
한 개 찾기 - 예시
user = db.users.find_one({'name':'bobby'})
여러개 찾기 - 예시 ( _id 값은 제외하고 출력)
same_ages = list(db.users.find({'age':21},{'_id':False}))
바꾸기 - 예시
db.users.update_one({'name':'bobby'},{'$set':{'age':19}})
지우기 - 예시
db.users.delete_one({'name':'bobby'})
예전 회사에서 데이터를 가공하는 과정에서, 불가피하다고 생각했던 수공업이 불가피하지 않았다는 걸.. 어떻게든 방법이 있었을 거라는 생각이 들었다.
아직 공부해야할 부분이 많지만 더 알아가면서 내가 일을 할 수 있는 바운더리를 넓혀간다고 생각해야지..
점점 스스로에게 느슨해진다. 긴장감을 유지하자 =.=