티스토리 뷰

파이썬을 다운로드 받아줍니다. 

https://www.python.org/ftp/python/3.8.6/python-3.8.6-amd64.exe

파이썬의 버전은 3.8.6 버전을 설치해야 한다. 
(이유: 3.9는 너무 최신 버전이라 오작동하는 라이브러리들이 있다.)

🌞윈도우의 경우 

*필수 설치 프로그램 2개( phthon , git bash )

1. 위의 링크를 통해 python을 다운로드 받아줍니다. 

  • 실행하고 하단에 Add Python 3.8 to PATH 에 체크해줍니다. 그 다음 Install Now 를 통해 다운로드 받아줍니다.  

2. git bash를 다운로드 받아야 합니다. (download for windows)

https://git-scm.com/

 

Git

 

git-scm.com

 

파이썬 새 프로젝트 만들기 

🌞사용 IDE: 파이참 

 

1. 원하는 폴더에 파이썬 프로젝트를 생성해준다. e.g.) phythonprac 폴더 생성 

2. 파이참에서 새 프로젝트 만들기 

  • 맨 위 위치(경로)를 내가 만든 폴더로 설정해준다. (폴더명: pythonprac)
  • 아래의 위치를 보면 내 경로에 venv 폴더가 자동생성되어 잡혀있는 것이 보인다. 이러면 정
  • 기본 인터프리터가 Python38로 잡혀있는 지 확인, 아니라면 변경해준다. 
  • main.py 웰컴 스크랩트 생성의 체크박스를 해제해준다. 
  • 마지막으로 생성버튼 클릭

2-1. 생성 버튼을 누르면 아래와 같은 메세지가 뜰텐데 '이 창'(영문: this window) 을 눌러주면 된다. 

3. 완성된 폴더는 아래와 같은 파일 구성을 가진다. venv는 접어두고 새로운 파이썬 파일을 만들어 사용하면 된다. 

venv? 파이썬3에서는 venv라는 가상환경 라이브러리를 기본적으로 제공 (이전에 쓰던 써드파티 라이브러리인 virtualenv를 쓰지 않아도 됨) 
가상환경? 파이썬 패키지(라이브러리)간 의존성 때문에 사용한다. 프로젝트의 호환성 문제를 해결해준다. 
가상환경을 사용해서 프로젝트 별로 사용하는 인터프리터와 패키지의 공간을 분리할 수 있다. 
*라이브러리>=패키지>=모듈  // 통상적으로 라이브러리라 부르는 것을 파이썬에서는 패키지라고 부릅니다.
venv 폴더는 안 보이는 것처럼 대해주면 된다(수정X). 해당 폴더 내부에 뭔가를 만들거나 하면 안됩니다. 
접어두고 이제 파이썬 파일을 생성해주면 됩니다.

4. 파이썬으로 작성한 print('hello'); 코드가 들어있는 파이썬 파일을 실행시키려면 우클릭-> 실행을 누르면 됩니다. 

 


🌞파이썬 패키지 설치하기 

Python에서 패키지는 모듈(일종의 기능 묶음)을 모아놓은 단위이다. 이런 패키지의 묶음을 라이브러리라고 볼 수 있다. 
외부 라이브러리를 사용하기 위해서 패키지를 설치한다. 
즉, 패키지 설치 = 외부 라이브러리 설치 와 같은 말이다. 
  • 가상환경(virtual environment) ? - 프로젝트 별로 패키지들을 담을 공구함(라이브러리를 모아두는 곳) //아까 건들지말라했던 venv폴더가 가상환경의 약자입니다. 
  • 정리하면, 가상환경은 같은 시스템에서 실행되는 다른 파이썬 응용 프로그램들의 동작에 영향을 주지 않기 위해, 파이썬 배포 패키지들을 설치하거나 업그레이드하는 것을 가능하게 하는 격리된 실행 환경입니다. ref:파이썬 공식 용어집- 가상환경

그럼 이제 가상환경venv에 라이브러리를 설치하려면 pip(python install package)를 사용하면 됩니다. 

  • 파이참에서 설정 -> 프로젝트: 폴더명 -> Python 인터프리터 -> + 플러스 버튼 클릭 -> 'requests' 검색 후 패키지 설치 

requests 패키지는 ajax역할을 하는 라이브러리입니다. 

-그러면 request를 사용하면 오픈API의 정보를 가져올 수 있겠군요 

❗ request 가 아니라 requests 입니다. 오타 유의하세용:)

 

▶requests 라이브러리를 통해 ajax통신하기 (미세먼지 API활용)

❗ 외부 라이브러리마다 코드 작성법은 다 다릅니다. (만든이 맘대로 겠죠?)
그렇기 때문에 필요한 라이브러리의 사용법을 구글링을 통해 찾아서 사용하도록 합니다.
import requests # requests 라이브러리 설치 필요

# 아래는 이전에 사용한 미세먼지API를 가져온 것
# ajax 통신을 해주는 라이브러리이지만 데이터를 호출하는 방식은
# 라이브러리마다 다르기 때문에 구글링을 통해 사용방법을 알아내면 됩니다.

r = requests.get('http://spartacodingclub.shop/sparta_api/seoulair')
rjson = r.json()
# rows를 가져오기
rows = rjson['RealtimeCityAir']['row']
for row in rows:
    gu_name = row['MSRSTE_NM']
    gu_mise = row['IDEX_MVL']
    # 60보다 작으면 찍어주기
    if gu_mise < 60:
        print(gu_name)
        
    #결과는 아래와 같이 나온다.
    # 성북구
    # 영등포구
    # 양천구  
    # 강남구
    # 서초구
    # 송파구
    # 강동구

파이썬의 문법은 JS보다 훨씬 더 직관적입니다.

이제부터 파이썬 기초공부를 해봅시다. 😂

 

JS와 마찬가지로 변수, 자료형, 함수, 조건문, 반복문를 공부합니다. 

 

파이썬 기초 문법 

들어가기 전에..

✔ 파이썬의 주석처리: #
✔ 들여쓰기(tab)가 중요하다. JS의 {}중괄호 역할을 대신해주는 것 같다.

🌞변수 

파이썬은 변수를 사용할 때 JS처럼 var, const, let과 같은 것이 필요없다. 

  • string끼리 더하기연산도 가능하다. 
a = '안녕'
b = '잘가'
print(a+b)

name = 'bob' # 변수에는 문자열이 들어갈 수도 있고,
num = 12 # 숫자가 들어갈 수도 있고,

is_number = True # True 또는 False -> "Boolean"형이 들어갈 수도 있습니다.

#########
# 그리고 List, Dictionary 도 들어갈 수도 있죠. 그게 뭔지는 아래에서!

🌞자료형

🐱‍👤리스트 (JS의 리스트형과 동일)

  • JS의 리스트(a.ka. array)와 동일하게 작성, index를 통해 호출가능하다.
  • JS에서는 push()를 통해 리스트에 데이터를 추가했다면 파이썬에서는 .append()를 통해 데이터를 추가한다.
a_list = ['사과','감','배'];
print(a_list[0]) #사과
a_list.appned('감자')
print(a_list) #['사과', '감', '배', '감자']


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

 

🐱‍👤딕셔너리 (JS의 딕셔너리형과 동일)

  •  JS와 크게 다를 게 없다 ['key']를 통해서 key에 해당하는 value를 가져오는 것까지 같다. 
a_dict = {}
a_dict = {'name':'bob','age':21}
a_dict['height'] = 178

# a_dict의 값은? {'name':'bob','age':21, 'height':178}
# a_dict['name']의 값은? 'bob'
# a_dict['age']의 값은? 21
# a_dict['height']의 값은? 178

 

🐱‍👤딕셔너리와 리스트 조합 예제

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는 definition의 약자로 파이썬이 직관적인 언어라는 점을 생각해보면 어차피 줄에 맞춰서 코드를 작성할 것이기 때문에 {} 중괄호와 같은 것들은 굳이 쓸 필요가 없는 것입니다. 
  • 기본 형식은 def 함수명(인자):  return .. 
def sum(a,b):
    print('더하자')
    return a+b
print(sum(2,3)) 
# 결과는 아래와 같이 나온다.
# 더하자 
# 3
  • 파이썬은 한줄씩 처리하기 때문에 해당함수를 호출하게 되면 위부터 차례대로 실행됩니다.

함수 응용 예제

  • 함수와 함수를 더해서 result 변수에 담아줬다. 
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)

# result라는 변수의 값은?

 

🌞조건문(if문)

조건문은 if/else로 구성됨 

❗if(조건식)에서 파이썬의 조건식은 JS와 다르게 ()소괄호 안에 쓰지 않습니다. 그냥 띄어쓰기로 구분해야 함  

함수에서 중요한 것은 :와 tab(들여쓰기) 입니다. 

: + tab 의 의미는 tab(들여쓰기)이후가 내 내용물입니다. 라고 알려주는 것이다. 파이썬은 중괄호를 사용하지 않기 때문에 들여쓰기로 코드의 구분을 해주고 있는데 아래와 같이 코드섹션을 나눠주는 용도를 : + tab으로 대신하고 있다. 

def oddeven(num):  # oddeven이라는 이름의 함수를 정의한다. num을 변수로 받는다.
	if num % 2 == 0: # num을 2로 나눈 나머지가 0이면
		 return True   # True (참)을 반환한다.
	else:            # 아니면,
		 return False  # False (거짓)을 반환한다.

result = oddeven(20)
# result의 값은 무엇일까요?


def is_adult(age):
    if age > 20:
        print('성인입니다')
    else:
        print('청소년입니다!')

is_adult(32)

 

🌞반복문(for문)

파이썬에서의 반복문은, 리스트의 요소들을 하나씩 꺼내쓰는 형태입니다. for ... in ..
❗즉, 반복문은 무조건 리스트와 함께 쓰인다.

리스트 예제

fruits = ['사과','배','배','감','수박','귤','딸기','사과','배','수박']

count = 0
for fruit in fruits:
    print(fruit)
    if fruit =='사과':
        count += 1

print(count)
  • 위의 코드 역시 들여쓰기로 해당 영역이 구분되어 있습니다. 
  • JS와 다르게 for문의 형식이 파이썬에서는 더 간단하게 되어있는데요.
  • for 단수 in 복수 라고 생각하면 쉽습니다. 요소하나에 해당하는 변수명은 아무렇게나 작명이 가능합니다. 
  • 해당 코드의 if문은 만일 배열 전체를 돌면서 '사과'라는 이름의 요소를 발견하면 count를 하나씩 올려주는 기능합니다. count의 값을 0으로 초기화해놨기 때문에 for문을 다 돌고나서 count의 값을 출력해보면 2로 즉 사과가 배열에 2개있다는 것을 알 수 있습니다. 

딕셔너리 예제 

people = [{'name': 'bob', 'age': 20},
          {'name': 'carry', 'age': 38},
          {'name': 'john', 'age': 7},
          {'name': 'smith', 'age': 17},
          {'name': 'ben', 'age': 27}]
for bbb in people:
    if bbb['age'] > 20:
        print(bbb['name']) 
        
# people 배열에 값으로 딕셔너리가 들어가있음 
# for in 문을 사용해서 하나의 딕셔너리 bbb를 구하고
# bbb의 age가 20보다 많은 bbb의 name을 출력하는 코드

# 이번엔, 반복문과 조건문을 응용한 함수를 만들어봅시다.
# 이름을 받으면, age를 리턴해주는 함수
def get_age(myname):
    for person in people:
        if person['name'] == myname:
            return person['age']
    return '해당하는 이름이 없습니다'


print(get_age('bob'))
print(get_age('kay'))

 

댓글