OAuth2.0
In [8]:
import onedrivesdk
import json
from onedrivesdk.helpers import GetAuthCodeServer
from pprint import pprint
In [21]:
redirect_uri = "http://localhost:8080/"
In [14]:
# Load Onenote API Client
with open('onenote.json') as data_file:
data = json.load(data_file)
pprint(data)
In [15]:
client = onedrivesdk.get_default_client(client_id=data['client_id'],
scopes=['wl.signin',
'wl.offline_access',
'onedrive.readwrite'])
In [22]:
auth_url = client.auth_provider.get_auth_url(redirect_uri)
auth_url
Out[22]:
In [23]:
code = GetAuthCodeServer.get_auth_code(auth_url, redirect_uri)
In [25]:
client.auth_provider.authenticate(code, redirect_uri, data['client_secret'])
In [62]:
collection = client.item(drive="me", id="root").children.request().get()
dat = client.item(drive="me", id= collection[0].id).children.get()
dat[0].name
Out[62]:
In [63]:
print(dat[0].name)
print(dat[1].name)
In [58]:
client.item(drive="me", id=dat[0].id).download("./download_from_onenote.txt")
In [64]:
client.item(drive="me", id=dat[1].id).download("./download_from_onenote1.txt")
In [59]:
file = open('download_from_onenote.txt', 'rb')
file.read()
Out[59]:
In [65]:
file = open('download_from_onenote1.txt', 'rb')
file.read()
Out[65]:
In [154]:
from pandas import DataFrame
import pandas as pd
import numpy as np
In [217]:
book = pd.read_excel('book.xlsx')
book.head()
Out[217]:
In [223]:
book.Tranlator = book.Tranlator.fillna('없음')
In [225]:
book[['Title', 'Tranlator', 'Rating', 'Yes24 Rating', 'Read Reason', 'Found Route', 'Route Category']]
Out[225]:
In [208]:
book['Diff'] = np.abs(book['Rating']-book['Yes24 Rating'])
In [209]:
book[['Title', 'Diff']]
Out[209]:
In [210]:
book['Diff'].describe()
Out[210]:
In [215]:
book[book['Diff'] == 5][['Title', 'Diff']]
Out[215]:
In [186]:
from IPython.display import Image
Image(url='https://raw.githubusercontent.com/inhwane/kookmin-1/master/images/TicTaeToe.png')
Out[186]:
In [190]:
import sys
go = input("계속하시겠습니까?")
if (go == 'x' or go == 'X'):
print(go)
In [192]:
import sys
go = input("계속하시겠습니까?")
if (go.lower() == 'x'):
print(go)
In [248]:
# 1년은 52주로 구성됨
week = list(range(1, 53)) # range 함수의 첫 번째 파라매터에는 시작할 숫자, 두 번째 파라매터에는 끝나는 숫자보다 1 큰 수를 넣어줌
In [247]:
# 한 주는 7일로 구성되어 있으므로 첫 번째 주의 가운데 날인 4번째 일을 그 주의 대표값(일)로 표시 (두 번째 주의 대표일은 11일)
representative_day = list(range(4, 365, 7)) # range의 세 번째 파라매터에는 간격이 들어감
In [251]:
import random
search = []
# 52주(1년) 동안의 주간 검색량 생성
# range 함수는 기본값이 0부터 시작하므로 range(52)라고 해도 무방
for i in range(0, 52):
# search += [random.randint(0, 100)]
search = search + [random.randint(0, 100)] #검색량 트렌드 데이터가 0~100 사이로 검색량을 나타내므로 0과 100 사이의 숫자 생성
In [260]:
np.random.randint(100, size=52)
Out[260]:
Random sampling(numpy.random) 참고
http://docs.scipy.org/doc/numpy/reference/routines.random.html
In [274]:
data = {
'week': week,
'day': representative_day,
'search_volume': search,
}
In [272]:
data1 = {
'week': week,
'day': representative_day,
'search_volume': np.random.randint(100, size=52),
}
In [270]:
frame = DataFrame(data)
frame
Out[270]:
In [275]:
frame1 = DataFrame(data1)
frame1
Out[275]:
In [276]:
1071 % 1029
Out[276]:
In [297]:
1029 % 42
Out[297]:
In [343]:
from math import gcd
gcd(1, 2)
Out[343]:
In [311]:
def euclidean(a,b):
if a > b:
high = a
low = b
r = 1
while r <= 0:
r = high % low
high = low
low = r
low = (a*b)/high
return low, high
elif a < b:
high = b
low = a
r = 1
while r <= 0:
r = high % low
high = low
low = r
low = (a*b)/high
return low, high
elif a==b:
print ("서로 다른 수를 기입하십시오.")
In [316]:
euclidean(10,1)
Out[316]:
In [315]:
euclidean(1, 2)
Out[315]:
In [1]:
import csv
list1 = []
list2 = []
cnt = 1
f = open("test.csv", 'r')
list_temp = csv.reader(f)
for row in list_temp:
if cnt == 1:
list1 = row
cnt += 1
else:
list2 = row
f.close()
def grasp_command(command):
try:
temp = command[:command.index('(')]
if command == 'q()':
return 'exit'
elif temp == 'stat' or temp =='cov' or temp =='min_sort' or temp =='max':
return command
else:
return 'false'
except:
return 'false'
def func_str(command):
temp = 0
for i in command:
temp = temp + int(i)
print("average : %.2f" % (temp / len(command)))
def func_min_sort(command):
cnt = len(command)
new_list = []
while cnt != 0:
a = min(command)
new_list.append(a)
command.remove(a)
cnt -= 1
print(new_list)
def run_func(meaning):
command = meaning[:meaning.index('(')]
parameter_temp = meaning[meaning.index('(')+1:meaning.index(')')]
if parameter_temp == 'list1':
parameter = list1
elif parameter_temp == 'list2':
parameter = list2
else:
print("Error in str(" + str(parameter_temp) + ") : object '" + str(parameter_temp) + "' not found")
return 0
if command == 'stat':
func_str(parameter)
elif command == 'cov':
print("cov")
elif command == 'min_sort':
func_min_sort(parameter)
elif command == 'max':
print("max")
print("R version 3.2.4 Revised (2016-04-23 r70336) -- 'PYTHON'")
print("Type 'demo()' for some demos, 'help()' for on-line help, or")
print("help.start()' for an HTML browser interface to help.")
print("Type 'q()' to quit R.\n")
while(1):
command = input("> ")
meaning = grasp_command(command)
if meaning == 'exit':
break
elif meaning == 'false':
print("Error: object '" + command + "' not found")
else:
run_func(meaning)
In [347]:
command = "x <- c(1, 2, 3, 4, 5)"
In [348]:
command.index("<")
Out[348]:
In [350]:
command[command.index("<"):command.index("<")+2]
Out[350]:
In [355]:
parameter_info = command[command.index("(")+1:command.index(")")]
parameter_info
Out[355]:
In [359]:
def clock(num):
sec = 0
for h in range(1, 25):
for m in range(60):
if str(num) in str(h) + str(m): # 문자열로 변환한 시간에 해당 숫자가 들어있으면
sec += 60
return sec
print(clock(5))
팀성적분석(전체, 최근5경기)
In [4]:
team3 = [1, 0, 1, 1, 0, 0, 1, 1, 1]
def score (lst):
s_score = sum(lst) / len(lst)
amt = 0
for a in (lst[-5::]):
amt += a
f_score = amt / 5
return s_score, f_score
score(team3)
Out[4]:
In [63]:
def all_avg(team):
"""전체 평균구하기"""
s_score = sum(team) / len(team)
return s_score
In [97]:
def recent_avg(team, games=5):
"""최근 평균구하기"""
f_score = sum(team[-games:]) / games
return f_score
In [6]:
team = [1, 0, 1, 1, 0, 0, 1, 1, 1]
In [99]:
all_avg(team)
Out[99]:
In [114]:
recent_avg(team, games=3)
Out[114]:
In [96]:
def avg(team, *args):
"""평균구하기
args: 인자값중 첫번째 값이 최근 경기수를 나타낸다.
"""
if args: # args가 참이면, 있다면
games = args[0]
else:
games = len(team)
avg_score = sum(team[-games:]) / games
return avg_score
print(avg(team, 4), avg(team))
In [7]:
def avg(team, games=len(team)):
"""평균구하기"""
avg_score = sum(team[-games:]) / games
return avg_score
print(avg(team, games=4), avg(team))
In [9]:
%timeit score(team3)
In [11]:
%timeit avg(team)
In [365]:
print("구구단 만들기.\n")
for x in range(2, 10): #2 부터 10 미만을 뜻한 첫번째 반복문
print("<" + str(x) + "단>") #X를 문자값으로 프린트
for y in range(1, 10): # 1부터 10미만 반복문 안에 두번째 반복문
print(x, "X", y, "=", x*y) # 최종 프린트 결과
In [447]:
morse = {
'.-':'A','-...':'B','-.-.':'C','-..':'D','.':'E','..-.':'F',
'--.':'G','....':'H','..':'I','.---':'J','-.-':'K','.-..':'L',
'--':'M','-.':'N','---':'O','.--.':'P','--.-':'Q','.-.':'R',
'...':'S','-':'T','..-':'U','...-':'V','.--':'W','-..-':'X',
'-.--':'Y','--..':'Z', '':' '
}
In [448]:
senten = input("What's going on? ")
senten = ".".join(senten)
senten = senten.split('.')
print(senten)
for dot, capi in morse.items():
if capi in senten:
print(dot,end=" ")
print(morse.get(dot), end=" ")
In [453]:
senten = input("What's going on? ")
for dot, capi in morse.items():
if capi in senten:
print(dot, end=" ")
In [2]:
def cypro(k): # def 으로 cypro(k)라는 함수를 정의해준다.
cl = 1 # cl의 값을 1로 할당. (cl = 싸이클의 길이 = 1부터 시작)
while k != 1: # while(조건반복) k≠1 인지 계속 비교 (k=1이면 반복중지)
if k%2 == 0: # 만약 k를 2로 나누었을때 나머지가 0이라면 (k가 짝수라면)
k = k/2 # k는 k/2 으로 할당해준다.
else: # k가 홀수라면
k = 3*k + 1 # k를 3*k+1 으로 할당해준다.
cl += 1 # 이때 cl 변수 값은 1 증가한다.
return cl # 증가한 cl 변수 값을 반환. 다시 반복. ** 여기까지가 cypro함수 정의
In [5]:
i = int(input('INPUT MIN NUM : ')) # 문자열 'INPUT MIN NUM : '을 받아 (소수점이 없는) 정수로 만들어줌
j = int(input('INPUT MAX NUM : '))
arw = [] # arw에 빈 리스트 할당. (빈 리스트를 만든 이유: 뒤에서 arw리스트에 항목을 추가하기 위함)
for t in range(i, j+1): # i부터 j까지 의 숫자 시퀀스에서 t에 대해 반복
arw.append(cypro(t)) # arw리스트 끝에 cypro(t) 항목을 추가. 즉 비어있는 arw리스트를 cypro(t)로 채운다.
print(max(arw)) # arw의 최대값을 출력
In [6]:
i=int(input('INPUT MIN NUM : ')) # 문자열 'INPUT MIN NUM : '을 받아 (소수점이 없는) 정수로 만들어줌
j=int(input('INPUT MAX NUM : '))
arw = [] # arw에 빈 리스트 할당. (빈 리스트를 만든 이유: 뒤에서 arw리스트에 항목을 추가하기 위함)
for t in range(i, j+1): # i부터 j까지 의 숫자 시퀀스에서 t에 대해 반복
arw.append(cypro(t)) # arw리스트 끝에 cypro(t) 항목을 추가. 즉 비어있는 arw리스트를 cypro(t)로 채운다.
print(max(arw)) # arw의 최대값을 출력
In [9]:
i = int(input('INPUT NUM1 : ')) # 문자열 'INPUT MIN NUM : '을 받아 (소수점이 없는) 정수로 만들어줌
j = int(input('INPUT NUM2 : '))
arw = [] # arw에 빈 리스트 할당. (빈 리스트를 만든 이유: 뒤에서 arw리스트에 항목을 추가하기 위함)
for t in range(min(i, j), max(i, j)+1): # i부터 j까지 의 숫자 시퀀스에서 t에 대해 반복
arw.append(cypro(t)) # arw리스트 끝에 cypro(t) 항목을 추가. 즉 비어있는 arw리스트를 cypro(t)로 채운다.
print(max(arw)) # arw의 최대값을 출력
In [136]:
import requests
import lxml.html
import konlpy
from konlpy.tag import Kkma, Twitter, Komoran, Hannanum
from konlpy.utils import pprint
from collections import Counter
In [135]:
def extract(url, path):
res = requests.get(url)
res.encoding = 'cp949'
root = lxml.html.fromstring(res.text)
return root.xpath(path)
In [123]:
url = "http://news.naver.com/main/read.nhn?oid=421&sid1=101&aid=0002030562&mid=shm&cid=428288&mode=LSD&nh=20160430115322"
path = '//div[@id="articleBodyContents"]'