- repeat()
예) let star_image = '⭐'.repeat(star)
(변수 star는 숫자!!)
- 터미널 열기 단축키
- Ctrl + 백틱(`)
- 터미널이란?
- 사용자가 텍스트로 명령어를 입력하면, 결과를 텍스트로 화면에 출력해주는 도구
- 터미널의 쓰임
- 파이선 라이브러리를 설치하고, 파이썬 프로젝트를 실행하는데 사용
- 사용하는 이유
- 명령어를 적어 작동시키는 것이 빠르고 편리하기 때문
- 요새는 GUI(눈에 보이는 아이콘으로 상호작용하는 방식)이 잘 되어 있어 사용하는 경우가 줄어들고 있지만, 코딩할 때는 명령어를 입력하는 방식을 자주 보게 될 것
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 도 들어갈 수도 있죠.
a=['사과','배','감']
print(a[0]) #사과
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
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("청소년입니다")
패키지 설치 = 외부 라이브러리 설치
같은 시스템에서 실행되는 다른 파이썬 응용 프로그램들의 동작에 영향을 주지 않기 위해, 파이썬 배포 패키지들을 설치하거나 업그레이드하는 것을 가능하게 하는 격리된 실행 환경
pythonprac 폴더에서
python -m venv venv
터미널에서 (venv)라고 뜨면 가상환경이 활성화 된 것임.
앱을 설치할 때 앱스토어/플레이스토어를 가듯이, 새로운 프로젝트의 라이브러리를 가상환경(공구함)에 설치하려면 pip를 이용
pip install requests
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)
웹 페이지에서 어떤 정보들을 가지고 오는 것
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')
- 태그 안의 텍스트를 찍고 싶을 때 => 태그.text
- 태그 안의 속성을 찍고 싶을 때 => 태그['속성']
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(',', '')
이미 정해진 칸에 데이터를 넣는 것(엑셀과 유사)
예) MS-SQL, My-SQL 등
딕셔녀리 형태로 데이터를 저장
예) MongoDB
=> 주로 스타트업은 NoSQL에서 SQL로 넘어가는 경우가 많다.
요즘에는 내 컴퓨터에 DB를 만들지 않고 인터넷에 있는 컴퓨터(클라우드 환경)에 올려놓는다.
https://account.mongodb.com/account/register
구글계정으로 가입 후
Build a Database
계정통일(sparta / test)
IP Adress : 0.0.0.0
mongoDB를 조작하려면 2개의 라이브러리(pymongo, dnspython)가 필요
pip install dnspython
pip install pymongo
from pymongo import MongoClient
client = MongoClient('여기에 URL(mongoDB 주소) 입력')
db = client.dbsparta
- 저장 - 예시
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'})
(출처 : 스파르타코딩클럽)