세 번째 개발공부!!
a = 3 # 3을 a에 넣는다
b = a # a를 b에 넣는다
a = a + 1 # a+1을 다시 a에 넣는다
num1 = ab # ab의 값을 num1이라는 변수에 넣는다
num2 = 99 # 99의 값을 num2이라는 변수에 넣는다
name = 'bob'
num = 12
a=['사과','배','감']
print(a[0])
->사과
a= { }
a= {'name':'영수','age':24}
a의 값은? {'name':'영수','age':24}
-> a['name'] 하면 '영수'
-> a['age'] 하면 '24'
파이썬에서는
def f(x):
return 2*x+3
y = f(2)
y의 값은? 7
자바스크립트에서는
function f(x) {
return 2*x+3
}
def = 함수를 선언할게~
ex) def hey(): = hey를 부르면 어떤일이 일어나냐면 :뒤에가 이 함수의 내용물이다~ 라는 뜻
def hey():
print("헤이")
*파이썬에서 함수 생성시, 들여쓰기는 중요!! (같은 라인에 있으면 그 안에 포함된걸로 간주함)
hey() #헤이
def sum(a,b,c):
return a+b+c
result = sum(1,2,3)
print(result) #6
age = 25
if age > 20:
print("성인입니다")
else:
print("청소년입니다")
*age가 20보다 크면 성인입니다, 그렇지 않다면 청소년입니다
ages = [5,10,13,23,25,9]
for a in ages:
print(a)
*ages의 하나하나씩을 가져와서 a로 넣고 그 a를 밑에가서 가져다 쓰자
ages = [5,10,13,23,25,9]
for a in ages:
if a > 20:
print('성인입니다')
else:
print('청소년입니다')
*ages의 내용물을 하나하나 가져와서 20보다 크면 성인 그렇지 않다면 청소년으로 출력
-웹에 접속해서 데이터를 솎아내어 가지고 오는것
-library가 2개 필요함
(1).웹에 접속하는 친구(ex: requests)
(2).솎아내는 친구(ex: beaytifulsoup)
import requests
from bs4 import BeautifulSoup
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')
크롤링 기본코드 세팅을 해준뒤 네이버 영화순위 url을 입력해준다!
그 후 네이버 영화 주소로 가서 각 키워드(순위,영화제목,별점점수)에 각각 검사를 눌려 코드를 찾는다
#old_content > table > tbody > tr:nth-child(2) > td.title > div > a (영화제목)
#old_content > table > tbody > tr:nth-child(2) > td.point (별점점수)
#old_content > table > tbody > tr:nth-child(2) > td:nth-child(1) > img (순위)
코드입력~!
trs = soup.select('#old_content > table > tbody > tr')
for tr in trs:
a = movie.select_one('td.title > div > a')
if a is not None:
title = a.text
rank = tr.select_one('td:nth-child(1) > img')['alt']
star = tr.select_one('td.point').text
print(rank, title, star)
여기서 none이 떠서 if a is not None을 붙여준다.
출력해 보면?! 완성!!!
DB는 왜 쓰는 것일까? ->저장해 놓은 데이터를 필요할 때 '잘'가지고 오도록 하는 역할
(1)RDBMS(SQL)
행/열의 생김새가 정해진 엑셀에 데이터를 저장하는 것과 유사합니다. 데이터 50만 개가 적재된 상태에서, 갑자기 중간에 열을 하나 더하기는 어려울 것입니다. 그러나, 정형화되어 있는 만큼, 데이터의 일관성이나 / 분석에 용이할 수 있습니다.
ex) MS-SQL, My-SQL 등
- 주로 바꿀일이 드문 대기업에서 많이 사용함
(2) No-SQL
딕셔너리 형태로 데이터를 저장해두는 DB입니다. 고로 데이터 하나 하나 마다 같은 값들을 가질 필요가 없게 됩니다. 자유로운 형태의 데이터 적재에 유리한 대신, 일관성이 부족할 수 있습니다.
ex) MongoDB
- 상황에 따라 자주 바꿀 수 있는 가능성이 높은 스타트업에서 많이 사용함
몽고 DB를 조작하려면 두 개의 라이브러리가 필요함.
1)pymongo (설치방법: 터미널 아래에 pip install pymongo 이라치고 엔터)
2)dnspython (설치방법: 터미널 아래에 pip install dnspython 이라치고 엔터)
from pymongo import MongoClient
client = MongoClient('여기에 URL 입력')
db = client.dbsparta
1.mongo atlas 화면에서 Connect를 클릭하기
2.Connect your application 클릭하기
4.url입력하는 곳에 복사한 주소 입력
5.Mongo Atlas 계정 비밀번호를 입력해주기
doc = {'name':'bobby','age':21}
db.users.insert_one(doc)
user = db.users.find_one({'name':'bobby'})
all_users = list(db.users.find({},{'_id':False}))
db.users.update_one({'name':'bobby'},{'$set':{'age':19}})
db.users.delete_one({'name':'bobby'})
1.연결한 코드를 크롤링했던 코드 맨위에 넣어주기!
2.도큐먼트 만들어 하나씩 insert 하기
3.mongo Atlas에서 확인하기!
1.디지몬어드벤처 라스트 에볼루션 : 인연
평점을 가져와보기
연결코드 입력해주고~
내가 필요한 정보를 찾기 ( 영화제목과[title],평점[star])
이제 한 개 찾는 코드를 입력한 후 print를 통해 필요한 별점 출력하기!
movie = db.movies.find_one({'title':'디지몬 어드벤처 라스트 에볼루션 : 인연'})
print(movie['star'])
완료
2.디지몬 영화 평점을 0으로 바꿔보기
한 개 찾는 코드를 지운 뒤 바꾸기 코드를 입력!
db.movies.update_one({'title':'디지몬 어드벤처 라스트 에볼루션 : 인연'},{'$set':{'star':0}})
확인하기!
9.53 평점이 0점이 되었다..!!
이제 3주차 강의를 들으며, 하나씩 만져보니 코딩에 재미를 붙이기 시작했다.
아직 초기 입문단계라 그럴 수 있지만 지금 배운 기초들도 잊지 않기 위해
응용을 하며 다른 방법으로도 활용하여 까먹지 않도록 머리에 새기자!