TIL 3주차: Python 기본 문법

iriskwak·2020년 8월 15일
0

파이썬 기초 문법 익히기

1. 파이썬을 설치하는 것의 의미

파이썬을 설치한다?

일종의 번역팩을 설치하는 것. 컴퓨터는 1010101101과 같은 언어만 알아듣기 때문에 파이썬 문법으로 된 것들을 위의 숫자들로 변환해줄 수 있도록 번역기를 설치하고 프로그래밍을 쉽게 할 수 있도록 기본 코드(ex. 파이썬 기본 함수)를 설치하는 것.

2. 파이썬 문법을 시작하기 전에

파이썬은 매우 직관적인 언어이고, 할 수 있는 것도 많음. 모든 문법을 기억하기 쉽지 않으므로 구글링을 생활화(추천 검색어: python 찾고자하는 기능)

3. 파이썬 기초 문법

  • 보통의 프로그래밍 언어는 변수, 자료형, 함수, 조건문, 반복문 요소가 있음.

**Remind: **
** 1. 출력하기 **
값을 확인하거나 에러를 찾을 때 자주 쓰임. 출력해서 버그찾기(Debugging By Printing) 스킬. Python에서 출력할 때, print('출력할 값')을 사용함
** 2. 이름짓기(Naming) **
담고 있는 데이터, 기능을 잘 나타낼 수 있는 이름으로 지어야 함. 보통 변수는 명사형으로, 함수는 동사형으로 지음
파이썬에서 이름짓기 규칙(naming convention)은 snake style을 사용함(_로 단어를 연결하기) →파이썬 공식 스타일 가이드 참고: (PEP 8 링크 / 파이썬 자습서-코딩 스타일 )

3.1 변수 & 기본 연산

a = 3  #3을 a에 넣는다
print(a)

b = a  #a를 b에 넣는다
print(b)

a = a + 1  #a+1을 다시 a에 넣는다
print(a)

num1 = a * b  #a*b의 값을 num1이라는 변수에 넣는다
print(num1)

num2 = 99  #99의 값을 num2이라는 변수에 넣는다
print(num2)

3.2 자료형

3.2.1 숫자, 문자형

name = 'Harry'  # 변수에는 문자열이 들어갈 수도 있고,
print(name)

num = 12  # 숫자가 들어갈 수도 있고,
print(num)

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

3.2.2 리스트형

a_list = []  # 비어있는 리스트 만들기
a_list.append(1)  # 리스트에 값을 넣는다
print(a_list)

a_list.append([2, 3])  # 리스트에 [2,3]이라는 리스트를 다시 넣는다
print(a_list)

#print 로 값 확인해보기
#a_list의 값은? [1,[2,3]]
#a_list[0]의 값은? 1
#a_list[1]의 값은? [2,3]
#a_list[1][0]의 값은? 2

3.2.3 Dictionary형

a_dict = {}  # 비어있는 딕셔너리 만들기

wizard = {'name': 'Harry Potter', 'age': 40}
print(wizard)

wizard['height'] = 173
print(wizard)

#print 로 값 확인해보기
#wizard의 값은? {'name':'Harry Potter','age':40, 'height':173}
#wizard['name']의 값은? 'Harry Potter'
#wizard['age']의 값은? 40
#wizard['height']의 값은? 173

3.2.4 Dictionary형과 List형의 조합

wizards = [{'name': 'Harry Potter', 'age': 40}, {'name': 'Ron Weasley', 'age': 40}]
print(wizards)

print 로 값 확인해보기
wizards[0]['name']의 값은? 'Harry Potter'
wizards[1]['name']의 값은? 'Ron Weasley'

new_wizard = {'name': 'Albus Potter', 'age': 14}
wizards.append(new_wizard)
print(wizards)

# print 로 값 확인해보기
# wizards의 값은? [{'name':'Harry Potter','age':40}, {'name':'Ron Weasley','age':40}, {'name':'Albus Potter','age':14}]
# wizards[2]['name']의 값은? 'Albus Potter

# 리스트 세 번째 항목의 'name'을 불러오는 것

파이썬은 들여쓰기(indent)로 블록 단위를 나눔( * JS는 { }를 사용)
들여쓰기를 잘못하면 indetation Error 발생하므로, 들여쓰기가 매우 중요!

3.3 함수

왠지 이건 있을 것 같은 함수다 → 직접 만들지말고 구글 검색

3.3.1 함수의 기본 생김새

# 만들기
def 함수이름(필요한 변수들) :
	내릴 명령어들을 순차적으로 작성

# 사용하기
함수이름(필요한 변수들)

3.3.2 예시

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)

# print 로 값 확인해보기
# result라는 변수의 값은?

3.4 조건문

3.4.1 조건문 01

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

result = is_even(20)

# print 로 값 확인해보기
# result의 값은 무엇일까요?

3.4.2 조건문 02

def is_adult(age):
    if age >= 20:
        print('성인입니다')  # 조건이 참이면 성인입니다를 출력
    else:
        print('청소년이에요')  # 조건이 거짓이면 청소년이에요를 출력

# is_adult(30) 하면 무엇이 출력될까요?

3.4.3 조건문 03 (조건

# 조건을 여러 개 사용하고 싶을 때
def check_generation(age):
    if age > 120:
        print('와 19세기에 태어나셨군요!')
    elif age >= 80:
        print('80세 이상! 인생은 여든부터!')
    else:
        print('젊으시군요! 장래희망이 뭔가요?')


my_age = 55
check_generation(my_age)

3.5 반복문

파이썬에서 반복문은 리스트나 문자열의 요소들을 하나씩 꺼내쓰는 형태. 임의의 열(sequence, 리스트나 문자열처럼)의 항목들을 그 순서대로 꺼내어 반복

3.5.1 반복문 01

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

for fruit in fruits:  # fruit 은 우리가 임의로 지어준 이름입니다.
    print(fruit)  # 사과, 배, 감, 귤 하나씩 꺼내어 출력합니다.

3.5.2 반복문(과일 갯수 세기 함수)

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

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

# 사과의 갯수를 출력합니다.
print(count)

3.5.3 반복문

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


def count_fruits(name):
    count = 0
    for fruit in fruits:
        if fruit == name:
            count += 1
    return count


subak_count = count_fruits('수박')
print(subak_count)  # 수박의 갯수 출력

gam_count = count_fruits('감')
print(gam_count)  # 감의 갯수 출력

3.5.4 반복문

professor_wizards = [
    {'name': '덤블도어', 'age': 116},
    {'name': '맥고나걸', 'age': 85},
    {'name': '스네이프', 'age': 60},
]


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


print(get_age('덤블도어', professor_wizards))
print(get_age('맥고나걸', professor_wizards))

4. 파이썬 패키지 설치

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

4.1 가상환경이란?

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

4.2 가상환경 설치 및 확인

5. 설치한 Requests에 라이브러리 사용 & 파이썬 기초 문법 연습

  • 서울시 OpneApi를 이용하여 List / Dictionary / 함수 / if / for문 연습

서울시 권역별 실시간 대치환경 현황
API 문서 : (링크)
API 요청(request) URL : http://openapi.seoul.go.kr:8088/6d4d776b466c656533356a4b4b5872/json/RealtimeCityAir/1/99

5.1 [코드 API 연습 01] 중구의 NO2값 가져오기

import requests  # requests 라이브러리 설치 필요

# requests 를 사용해 요청(Request)하기
response_data = requests.get('http://openapi.seoul.go.kr:8088/6d4d776b466c656533356a4b4b5872/json/RealtimeCityAir/1/99')

# 응답(response) 데이터인 json을 쉽게 접근할 수 있게 만들어 city_air 에 담고
city_air = response_data.json()

# 값을 출력
print(city_air['RealtimeCityAir']['row'][0]['NO2'])
# 중구는 0번째 튜플이기 때문에 [0]

5.2 [코드 API 연습 02] 모든 구의 PM10을 찍어주기

import requests  # requests 라이브러리 설치 필요

response_data = requests.get('http://openapi.seoul.go.kr:8088/6d4d776b466c656533356a4b4b5872/json/RealtimeCityAir/1/99')

city_air = response_data.json()
gu_info = city_air['RealtimeCityAir']['row']

for a in gu_info:
    print(a['MSRSTE_NM'],a['PM10'] )

0개의 댓글