#!/usr/bin/env python
# coding: utf-8
# # **Python Basic**
# 지난 수업 이후로 **Python 에서 기본 모듈로** 구현가능한 내용들 정리하기
# ## **1 math 계산하기**
# 목적 : **생성한 Dict 객체 호출시 기본값을 특정하여** 오류처리 없이도 전체 과정이 진행
# In[1]:
import math
math.ceil(3.14) # 올림 : 결과는 4
# In[2]:
math.floor(3.14) # 내림 : 결과는 3
# In[3]:
math.trunc(-3.14) # trunc() 내림을 해도 0을 향한다
# In[4]:
round(3.1415) # 반올림 : Python 내장함수를 사용
#
#
# # **Dict 객체 다루기**
# **default Dict** 과 **Ordered Dict** 기초 [블로그](https://dongdongfather.tistory.com/71?category=680339) 정리
# 1. 자료형 작업을 하다보면 **dict 객체를** 다양하게 정의할 필요가 있다
#
# ## **1 defaultDict**
# 목적 : **생성한 Dict 객체 호출시 기본값을 특정하여** 오류처리 없이도 전체 과정이 진행
# In[5]:
from collections import defaultdict
int_dict = defaultdict(int)
int_dict
# In[6]:
# 입력값이 없어도, 호출시 "int" 를 자동생성
# 작업 과정에 오류가 있어도 Dict 객체를 생성
print(int_dict['key1'])
int_dict
# In[7]:
int_dict['key2'] = 'test'
int_dict
# In[8]:
int_dict['key3']
int_dict
# ## **2 OrderedDict**
# dict 객체를 순서에 따라 정렬할 필요가 있을때
# 1. **"Json" 의 Header 안내를** 컬럼으로 활용하는 방법을 알아보자
# 1. dict 객체를 [list 내부 (tuple) 묶음으로 관리 및 활용]
# In[9]:
col_to_kor = {
"NUM":"번호",
"FOOD_CD":"식품코드",
"DESC_KOR":"식품이름",
"SERVING_WT":"1회제공량(g)",
}
from collections import OrderedDict
json_keys = OrderedDict(col_to_kor)
json_keys
# In[10]:
list(OrderedDict(col_to_kor).keys())
#
#
# # **시계열 데이터 다루기**
# **python** 의 기본 **datetime** 객체 다루기
# 1. 요즘들어 Python 기본 모듈로 인코딩 변환이 취미가 됨...
# 1. 가능하면 외부 모듈이 아닌, **Python 기본 모듈을** 로 최대한 구현해보기
# ## **1 Datetime 모듈**
# Python 에서 기본 Datetime 객체 다루기
# In[1]:
from datetime import datetime, timedelta
print(datetime.today().strftime("%A %d. %B %Y"))
print(datetime.today().strftime('%Y-%m-%d'))
# 년, 월, 일, 시간, 분, 초
datetime(2019,10,10,12,12,12,1000)
# In[2]:
# 수치를 활용한 보간
# 날짜를 연산으로 변환된 값을 추출 가능
datetime(2019,10,10) - timedelta(10)
# In[7]:
datetime.strptime('20190101', '%Y%d%m')
# ## **2 Pandas**
# datetime 객체를 활용하는 Pandas 모듈
# In[13]:
# 10일의 기간 출력
import pandas as pd
pd.date_range('2019/01/01', periods=10)
# In[14]:
# 10일의 기간 출력
pd.date_range('2019/01/01', periods=10, freq='B')
# In[15]:
# 10일의 기간 출력
pd.date_range('2019/01/01', periods=10, freq='12h30min', normalize=True)
# In[16]:
# 기간 구간을 10개로 나누기
pd.date_range('2019/01/01', '2019/11/01', periods=10)
# In[17]:
# String Format time data
# 개별 객체에 datetime 메소드를 적용
[_.strftime('%Y-%m-%d') for _ in pd.date_range('2019/10/10', periods=5)]
#
#
# # **Decorator**
# 슬기로운 파이썬 트릭 (2019 | 프로그래밍 인사이트)
# ## **1 데코레이터의 힘**
# In[66]:
get_ipython().system(' pip install -U instabot')
# In[ ]:
# In[67]:
from instabot import Bot
bot = Bot()
bot.login(username="saltman21@naver.com", password="inst8472")
# bot.login(username="YOUR_LOGIN", password="YOUR_PASSWORD")
user_id = bot.get_user_id_from_username("erdoskim")
user_info = bot.get_user_info(user_id)
print(user_info['biography'])
# In[ ]:
# In[ ]:
# In[ ]:
# In[ ]:
# In[64]:
from igramscraper.instagram import Instagram
instagram = Instagram()
# authentication supported
instagram.with_credentials('erdoskim', 'inst8472')
instagram.login()
#Getting an account by id
account = instagram.get_account_by_id(3)
# In[61]:
# Available fields
print('Account info:')
print('Id: ', account.identifier)
print('Username: ', account.username)
print('Full name: ', account.full_name)
print('Biography: ', account.biography)
print('Profile pic url: ', account.get_profile_pic_url_hd())
print('External Url: ', account.external_url)
print('Number of published posts: ', account.media_count)
print('Number of followers: ', account.followed_by_count)
print('Number of follows: ', account.follows_count)
print('Is private: ', account.is_private)
print('Is verified: ', account.is_verified)
# or simply for printing use
print(account)
# In[ ]:
# In[56]:
a = [1,2,3]
b = [1,2,3]
a is b
# In[57]:
a == b
# In[ ]:
# In[38]:
get_ipython().run_line_magic('reset', '')
# In[53]:
def uppercase(func):
def wrapper():
return func().upper()
return wrapper
# In[54]:
@uppercase
def greet():
return 'hello boys!!'
# In[55]:
greet('hello boys!')
# In[50]:
def decor1(func):
def wrap():
print("$$$$$$$$$$$$$$")
func()
print("$$$$$$$$$$$$$$")
return func.upper()
return wrap
# In[51]:
@decor1
def sayhello():
print("Hello")
sayhello()
# In[ ]:
# In[ ]:
# In[ ]:
# In[ ]:
# In[ ]:
# In[ ]:
# In[ ]:
def decor2(func):
def wrap():
print("##############")
func()
print("##############")
return wrap
# In[ ]: