Movatterモバイル変換
[0]
ホーム
URL:
画像なし
夜間モード
Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Daisuke Igarashi
PDF, PPTX
3,604 views
Pythonで始めるDropboxAPI
旭川オープンソースコミュニティ11月勉強会だいぶ適当です!
Technology
◦
Read more
5
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 219
2
/ 219
3
/ 219
4
/ 219
5
/ 219
6
/ 219
7
/ 219
8
/ 219
9
/ 219
10
/ 219
11
/ 219
12
/ 219
13
/ 219
14
/ 219
15
/ 219
16
/ 219
17
/ 219
18
/ 219
19
/ 219
20
/ 219
21
/ 219
22
/ 219
23
/ 219
24
/ 219
25
/ 219
26
/ 219
27
/ 219
28
/ 219
29
/ 219
30
/ 219
31
/ 219
32
/ 219
33
/ 219
34
/ 219
35
/ 219
36
/ 219
37
/ 219
38
/ 219
39
/ 219
40
/ 219
41
/ 219
42
/ 219
43
/ 219
44
/ 219
45
/ 219
46
/ 219
47
/ 219
48
/ 219
49
/ 219
50
/ 219
51
/ 219
52
/ 219
53
/ 219
54
/ 219
55
/ 219
56
/ 219
57
/ 219
58
/ 219
59
/ 219
60
/ 219
61
/ 219
62
/ 219
63
/ 219
64
/ 219
65
/ 219
66
/ 219
67
/ 219
68
/ 219
69
/ 219
70
/ 219
71
/ 219
72
/ 219
73
/ 219
74
/ 219
75
/ 219
76
/ 219
77
/ 219
78
/ 219
79
/ 219
80
/ 219
81
/ 219
82
/ 219
83
/ 219
84
/ 219
85
/ 219
86
/ 219
87
/ 219
88
/ 219
89
/ 219
90
/ 219
91
/ 219
92
/ 219
93
/ 219
94
/ 219
95
/ 219
96
/ 219
97
/ 219
98
/ 219
99
/ 219
100
/ 219
101
/ 219
102
/ 219
103
/ 219
104
/ 219
105
/ 219
106
/ 219
107
/ 219
108
/ 219
109
/ 219
110
/ 219
111
/ 219
112
/ 219
113
/ 219
114
/ 219
115
/ 219
116
/ 219
117
/ 219
118
/ 219
119
/ 219
120
/ 219
121
/ 219
122
/ 219
123
/ 219
124
/ 219
125
/ 219
126
/ 219
127
/ 219
128
/ 219
129
/ 219
130
/ 219
131
/ 219
132
/ 219
133
/ 219
134
/ 219
135
/ 219
136
/ 219
137
/ 219
138
/ 219
139
/ 219
140
/ 219
141
/ 219
142
/ 219
143
/ 219
144
/ 219
145
/ 219
146
/ 219
147
/ 219
148
/ 219
149
/ 219
150
/ 219
151
/ 219
152
/ 219
153
/ 219
154
/ 219
155
/ 219
156
/ 219
157
/ 219
158
/ 219
159
/ 219
160
/ 219
161
/ 219
162
/ 219
163
/ 219
164
/ 219
165
/ 219
166
/ 219
167
/ 219
168
/ 219
169
/ 219
170
/ 219
171
/ 219
172
/ 219
173
/ 219
174
/ 219
175
/ 219
176
/ 219
177
/ 219
178
/ 219
179
/ 219
180
/ 219
181
/ 219
182
/ 219
183
/ 219
184
/ 219
185
/ 219
186
/ 219
187
/ 219
188
/ 219
189
/ 219
190
/ 219
191
/ 219
192
/ 219
193
/ 219
194
/ 219
195
/ 219
196
/ 219
197
/ 219
198
/ 219
199
/ 219
200
/ 219
201
/ 219
202
/ 219
203
/ 219
204
/ 219
205
/ 219
206
/ 219
207
/ 219
208
/ 219
209
/ 219
210
/ 219
211
/ 219
212
/ 219
213
/ 219
214
/ 219
215
/ 219
216
/ 219
217
/ 219
218
/ 219
219
/ 219
Recommended
PDF
Scala with DDD
by
潤一 加藤
PPTX
Javaプログラミング入門【第2回】
by
Yukiko Kato
PDF
すごいH 第12章モノイド
by
Shinta Hatatani
KEY
モナドがいっぱい!
by
Kenta Sato
PDF
C# ドキドキ ライブ コーディング!! ~ 小島の分 ~ | BuriKaigi 2020
by
Fujio Kojima
PPTX
【LT版】Elixir入門「第7回:Python/KerasをElixirから繋いでアレコレする」
by
fukuoka.ex
PPT
CLR/H No.35-2
by
Nobuhisa Koizumi
KEY
Actor&stm
by
潤一 加藤
PPTX
[機械学習]文章のクラス分類
by
Tetsuya Hasegawa
PDF
Ekmett勉強会発表資料
by
時響 逢坂
PDF
Mock and patch
by
Toru Furukawa
PDF
「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」
by
Nagi Teramo
PPTX
Javaプログラミング入門【第3回】
by
Yukiko Kato
PDF
Javaセキュアコーディングセミナー東京第1回演習の解説
by
JPCERT Coordination Center
PDF
PHP5.5新機能「ジェネレータ」初心者入門
by
kwatch
PPTX
C# LINQ ~深く知って、使いまくろう~
by
Fujio Kojima
PDF
Scalaのオブジェクトの話
by
Yasuyuki Maeda
PPTX
C#を始めたばかりの人へのLINQ to Objects
by
Fumitaka Yamada
PDF
Metaprogramming in JuliaLang
by
Yuichi Motoyama
PDF
Juliaで並列計算
by
Shintaro Fukushima
PDF
LINQソースでGO!
by
Kouji Matsui
PDF
traitを使って楽したい話
by
infinite_loop
PDF
Introduction Xtend
by
Hideki Kishida
ODP
Ekmett勉強会発表資料
by
時響 逢坂
PDF
Python勉強会3-コレクションとファイル
by
理 小林
PPTX
Javaデザインパターン入門【第3回】
by
Yukiko Kato
PDF
これからの「言語」の話をしよう ―― 未来を生きるためのツール
by
Nobuhisa Koizumi
PPTX
Java8 Lambda chapter5
by
Takinami Kei
KEY
ひのきのぼうだけで全クリ目指す
by
AromaBlack
PDF
Python入門
by
Shohei Okada
More Related Content
PDF
Scala with DDD
by
潤一 加藤
PPTX
Javaプログラミング入門【第2回】
by
Yukiko Kato
PDF
すごいH 第12章モノイド
by
Shinta Hatatani
KEY
モナドがいっぱい!
by
Kenta Sato
PDF
C# ドキドキ ライブ コーディング!! ~ 小島の分 ~ | BuriKaigi 2020
by
Fujio Kojima
PPTX
【LT版】Elixir入門「第7回:Python/KerasをElixirから繋いでアレコレする」
by
fukuoka.ex
PPT
CLR/H No.35-2
by
Nobuhisa Koizumi
KEY
Actor&stm
by
潤一 加藤
Scala with DDD
by
潤一 加藤
Javaプログラミング入門【第2回】
by
Yukiko Kato
すごいH 第12章モノイド
by
Shinta Hatatani
モナドがいっぱい!
by
Kenta Sato
C# ドキドキ ライブ コーディング!! ~ 小島の分 ~ | BuriKaigi 2020
by
Fujio Kojima
【LT版】Elixir入門「第7回:Python/KerasをElixirから繋いでアレコレする」
by
fukuoka.ex
CLR/H No.35-2
by
Nobuhisa Koizumi
Actor&stm
by
潤一 加藤
What's hot
PPTX
[機械学習]文章のクラス分類
by
Tetsuya Hasegawa
PDF
Ekmett勉強会発表資料
by
時響 逢坂
PDF
Mock and patch
by
Toru Furukawa
PDF
「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」
by
Nagi Teramo
PPTX
Javaプログラミング入門【第3回】
by
Yukiko Kato
PDF
Javaセキュアコーディングセミナー東京第1回演習の解説
by
JPCERT Coordination Center
PDF
PHP5.5新機能「ジェネレータ」初心者入門
by
kwatch
PPTX
C# LINQ ~深く知って、使いまくろう~
by
Fujio Kojima
PDF
Scalaのオブジェクトの話
by
Yasuyuki Maeda
PPTX
C#を始めたばかりの人へのLINQ to Objects
by
Fumitaka Yamada
PDF
Metaprogramming in JuliaLang
by
Yuichi Motoyama
PDF
Juliaで並列計算
by
Shintaro Fukushima
PDF
LINQソースでGO!
by
Kouji Matsui
PDF
traitを使って楽したい話
by
infinite_loop
PDF
Introduction Xtend
by
Hideki Kishida
ODP
Ekmett勉強会発表資料
by
時響 逢坂
PDF
Python勉強会3-コレクションとファイル
by
理 小林
PPTX
Javaデザインパターン入門【第3回】
by
Yukiko Kato
PDF
これからの「言語」の話をしよう ―― 未来を生きるためのツール
by
Nobuhisa Koizumi
PPTX
Java8 Lambda chapter5
by
Takinami Kei
[機械学習]文章のクラス分類
by
Tetsuya Hasegawa
Ekmett勉強会発表資料
by
時響 逢坂
Mock and patch
by
Toru Furukawa
「plyrパッケージで君も前処理スタ☆」改め「plyrパッケージ徹底入門」
by
Nagi Teramo
Javaプログラミング入門【第3回】
by
Yukiko Kato
Javaセキュアコーディングセミナー東京第1回演習の解説
by
JPCERT Coordination Center
PHP5.5新機能「ジェネレータ」初心者入門
by
kwatch
C# LINQ ~深く知って、使いまくろう~
by
Fujio Kojima
Scalaのオブジェクトの話
by
Yasuyuki Maeda
C#を始めたばかりの人へのLINQ to Objects
by
Fumitaka Yamada
Metaprogramming in JuliaLang
by
Yuichi Motoyama
Juliaで並列計算
by
Shintaro Fukushima
LINQソースでGO!
by
Kouji Matsui
traitを使って楽したい話
by
infinite_loop
Introduction Xtend
by
Hideki Kishida
Ekmett勉強会発表資料
by
時響 逢坂
Python勉強会3-コレクションとファイル
by
理 小林
Javaデザインパターン入門【第3回】
by
Yukiko Kato
これからの「言語」の話をしよう ―― 未来を生きるためのツール
by
Nobuhisa Koizumi
Java8 Lambda chapter5
by
Takinami Kei
Similar to Pythonで始めるDropboxAPI
KEY
ひのきのぼうだけで全クリ目指す
by
AromaBlack
PDF
Python入門
by
Shohei Okada
PPTX
Python基礎その1
by
大貴 末廣
PDF
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
by
kiki utagawa
PPTX
2017/12/21 虎の穴 Python勉強会
by
虎の穴 開発室
PPTX
Python 学習教材
by
Jun MITANI
PDF
Python勉強会2-数値と文字列
by
理 小林
PPT
Pythonintro
by
Mikio Kubo
PPTX
Python opt
by
Mikio Kubo
ODP
Introduction of Python
by
Tomoya Nakayama
KEY
Hello World Python featuring GAE
by
Maito Kuwahara
PDF
Python02
by
XMLProJ2014
PDF
DATUM STUDIO PyCon2016 Turorial
by
Tatsuya Tojima
PDF
Python勉強会4-制御構文とパッケージ
by
理 小林
PDF
はじめてのPython
by
Katsumi Honda
PDF
エキ Py 読書会02 2010/9/7
by
Tetsuya Morimoto
PDF
第1回python勉強会
by
Yoshio Shimomura
PDF
S02 t1 sta_py_tsuji_0702_slides
by
Takeshi Akutsu
PDF
Python01
by
XMLProJ2014
PDF
LLdeade Python Language Update
by
Atsushi Shibata
ひのきのぼうだけで全クリ目指す
by
AromaBlack
Python入門
by
Shohei Okada
Python基礎その1
by
大貴 末廣
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
by
kiki utagawa
2017/12/21 虎の穴 Python勉強会
by
虎の穴 開発室
Python 学習教材
by
Jun MITANI
Python勉強会2-数値と文字列
by
理 小林
Pythonintro
by
Mikio Kubo
Python opt
by
Mikio Kubo
Introduction of Python
by
Tomoya Nakayama
Hello World Python featuring GAE
by
Maito Kuwahara
Python02
by
XMLProJ2014
DATUM STUDIO PyCon2016 Turorial
by
Tatsuya Tojima
Python勉強会4-制御構文とパッケージ
by
理 小林
はじめてのPython
by
Katsumi Honda
エキ Py 読書会02 2010/9/7
by
Tetsuya Morimoto
第1回python勉強会
by
Yoshio Shimomura
S02 t1 sta_py_tsuji_0702_slides
by
Takeshi Akutsu
Python01
by
XMLProJ2014
LLdeade Python Language Update
by
Atsushi Shibata
Pythonで始めるDropboxAPI
1.
Pythonで始める DropboxAPIDaisuke Igarashi
<planset@gmail.com>
2.
ppyytthhoonn?
3.
ppyytthhoonn?
4.
pythonってなに?
5.
プログラミング言語
6.
>>> print ‘Hello
world!’Hello world!
7.
>>> for i
in range(5):... print “Hello world!”...Hello world!Hello world!Hello world!Hello world!Hello world!
8.
>>> for i
in range(5):... if i == 3:... print "aho"... else:... print "Hello world!"...Hello world!Hello world!Hello world!ahoHello world!
9.
pythonとは• オープンソース• スクリプト言語•
オブジェクト指向• Guido van Rossum によって1991年 くらいに開発された
10.
python事例• linux(red hat)のいろいろ
anaconda, virt-managerなど• Trac, Ploneなどのウェブもの。• DropboxなどのサービスやSDK• googleでも割と使われている。 開発者がgoogle勤務。
11.
なんでpython?
12.
毎年少なくとも一つの言語を学習する
13.
プログラミング言語歴• さらっと Delphi(object
pascal)、アセンブラ、 php、perl、ruby、html、javascript、 java• わりとしっかり c/c++、VisualBasic、VB.NET
14.
プログラミング言語歴• さらっと Delphi(object
pascal)、アセンブラ、 php、perl、ruby、html、javascript、 java• わりとしっかり c/c++、VisualBasic、VB.NET
15.
プログラミング言語歴• さらっと Delphi(object
pascal)、アセンブラ、 php、perl、ruby、html、javascript、 java• わりとしっかり c/c++、VisualBasic、VB.NET
16.
今日話すこと•python入門•Dropbox APIを使ってみよう
17.
Python入門•pythonの特徴•pythonの基本•pythonの色々
18.
Python入門•pythonの特徴•pythonの基本•pythonの色々
19.
インデント
20.
インデント インデント
インデント
21.
インデント インデント
インデント
22.
インデントここ
インデント ここ インデント
23.
たとえば、Cでは(丁寧にかけば)
24.
int testfunc(int x,
int y){ if (x + y == 0) { return true; } else { return false; }}
25.
int testfunc(int x,
int y){ if (x + y == 0) { return true; } else { return false; }}
26.
int testfunc(int x,
int y){ if (x + y == 0) { return true; } else { return false; }}
27.
pythonでは
28.
def testfunc(x, y):
if x + y == 0: return True else: return False
29.
def testfunc(x, y):
if x + y == 0: return True else: return False
30.
def testfunc(x, y):
if x + y == 0: return True else: return False
31.
def testfunc(x, y):
z = 1 x = z + y return x
32.
def testfunc(x, y):
z = 1 x = z + y return x
33.
あ。ずれちゃった
34.
File "dame.py", line
6 return x ^IndentationError: unindent does not matchany outer indentation level意訳:インデントがずれてるじゃねーかばかやろー!
35.
そんなpythonなため
36.
pythonキモイ
37.
でも
38.
こうは書かないよね?int testfunc(int x,
int y){if (x==0){return true;}else{return false;}}
39.
だったらそう書かなきゃ動かないようにすればい
いじゃん
40.
思想
41.
pythonの思想• 言語自身の機能を最小限に。• 誰が書いても同じ機能は同じような実装
になるように。• 文書化の重視
42.
pythonの思想• 言語自身の機能を最小限に。• 誰が書いても同じ機能は同じような実装
になるように。• 文書化の重視
43.
文書化といっても• ドキュメントを書け• コメントを書け
44.
文書化といっても• ソースに書いても、API仕様書にかかな きゃだめだったり•
ドキュメントを書いても結局メンテされ なかったり
45.
pythonでは言語レベルで サポート
46.
sample.pydef add(x, y):
""" xとyを加算します。 ただし、結果が3の倍数の場合、'aho'を返します。 例)x=15、y=5の場合 >>> add(15, 5) 20 例)x=10、y=2の場合 >>> add(10, 2) 'aho' """ return x + y if (x + y) % 3 != 0 else 'aho'if __name__ == '__main__': import doctest doctest.testmod()
47.
>>> help(sample)Help on
module sample:NAME sample - # -*- coding: utf-8 -*-FILE /path/to/sample.pyFUNCTIONS add(x, y) xとyを加算します。 ただし、結果が3の倍数の場合、'aho'を返します。 例)x=15、y=5の場合 >>> add(15, 5) 20 例)x=10、y=2の場合 >>> add(10, 2)
48.
if __name__ ==
'__main__': import doctest doctest.testmod()
49.
sample.pydef add(x, y):
""" xとyを加算します。 ただし、結果が3の倍数の場合、'aho'を返します。 例)x=15、y=5の場合 >>> add(15, 5) 20 例)x=10、y=2の場合 >>> add(10, 2) 'aho' """ return x + y if (x + y) % 3 != 0 else 'aho'if __name__ == '__main__': import doctest doctest.testmod()
50.
# python sample.py
-vTrying: add(15, 5)Expecting: 20okTrying: add(10, 2)Expecting: 'aho'ok1 items had no tests: __main__1 items passed all tests: 2 tests in __main__.add2 tests in 2 items.2 passed and 0 failed.Test passed.
51.
つまり、 コメントがドキュメントであり コメントがテストであり、かつ信頼できるコードのサンプルになる。
52.
ちなみにちゃんとテストをしたいなら unittest パッケージ
が標準でついてます
53.
電池が付属しています
54.
Python入門•pythonの特徴•pythonの基本•pythonの色々
55.
変数
56.
整数、実数•宣言は必要ないです•x = 1•y
= 1.1•x++ はない!
57.
配列•変更不可能な配列•変更可能な配列
58.
変更不可能な配列•a
= ‘igarashi‘ # 文字列•c = (1, 2, 3) # タプル
59.
変更不可なので•a = ‘igarashi‘
# 文字列•a[2] = ‘3’
60.
変更不可なので•a = ‘igarashi‘
# 文字列•a[2] = ‘3’ できません!
61.
変更可能な配列•d
= [1, 2, 3] # リスト
62.
変更可能なので•d = [1,
2, 3] # リスト•d[0] = 10•>>> d [10, 2, 3]
63.
辞書• dic
= {'name': 'yamada', 'age': 20}• ‘name’ in dic # True• del dic[‘age’] # 削除• キーは変更できない値なら何でも良い。
64.
集合•g =
set([1,2,3,2,1])•>>> g set([1,2,3])
65.
True False•is_true =
True•if is_true: print “hello”
66.
注意点
67.
pythonでは
68.
全て参照渡しです
69.
なのでー
70.
>>> x =
1>>> x = x + 1>>> print x2
71.
>>> x =
1 1 x>>> x = x + 1 1+1 2 x x>>> print x2
72.
>>> x =
1 1 x 1+1 まちがい>>> x = x + 1 2 x x>>> print x2
73.
>>> x =
1 x 1>>> x = x + 1 1 x × 2>>> print x2
74.
>>> var1 =
1>>> var2 = var1この時点では同じオブジェクトを指している。>>> var1 = 2v1だけ新しいオブジェクトを参照する。>>> var12>>> var21
75.
>>> var1 =
[1, 2, 3]>>> var2 = var1この時点で同じオブジェクトを指している。>>> var1.append(4)v1だけに新しい要素を追加したつもりが・・・>>> var1[1, 2, 3, 4]>>> var2[1, 2, 3, 4]
76.
制御構文
77.
if, elif, elseif
x == 1: print 'A'elif x == 2: print 'B'else: print 'C'
78.
forfor i in
[1,2,3,4,5]: print ifor i in range(1, 6): print i
79.
whilei = 0while
i<10: i += 1 print ibreak,continueもつかえるよ。
80.
try, withtry:
lines = [] with open("infile.txt", "r") as f: lines = f.readlines()except: print 'error' raisefinally: print 'o wa ri'
81.
関数、クラス
82.
関数def testfunc(x, y):
return x + ytestfunc(10, 2)
83.
関数def testfunc():
print “hoge” returntestfunc()
84.
関数def testfunc():
print “hoge” returntestfunc()
85.
関数def testfunc():
print “hoge” returntestfunc
86.
関数def say():
print “hoge”>>> hogehoge = say>>> hogehoge()“hoge”
87.
無名関数>>> add =
lambda x,y:x + y>>> add(1, 2)3
88.
クラスclass Human(object):
name = '' age = 0 def __init__(self, name, age): self.name = name self.age = age def say(self): print 'hoge'
89.
クラスclass Human(object):
name = '' age = 0 def __init__(self, name, age): self.name = name self.age = age def say(self): print 'hoge'
90.
クラスclass Human(object):
name = '' age = 0 def __init__(self, name, age): self.name = name self.age = age def say(self): print 'hoge'
91.
クラスclass Human(object):
name = '' age = 0 def __init__(self, name, age): self.name = name self.age = age def say(self): print 'hoge'
92.
できればこう書きたい?class Human(object):
name = '' age = 0 def __init__(name, age): self.name = name self.age = age def say(): print 'hoge'
93.
こう考えてみるobj = Hoge()obj.age
= 20obj.name = 'hoge'
94.
こう考えてみるdef initialize(obj, age,
name): obj.age = age obj.name = nameobj = Hoge()initialize(obj, 20, 'hoge')
95.
こう考えてみるclass Hoge():
def initialize(obj, age, name): obj.age = age obj.name = nameobj = Hoge()Hoge.initialize(obj, 20, 'hoge')
96.
こう考えてみるclass Hoge():
def initialize(obj, age, name): obj.age = age obj.name = nameobj = Hoge()obj.initialize(20, 'hoge')
97.
こう考えてみるclass Hoge():
def __init__(obj, age, name): obj.age = age obj.name = nameobj = Hoge(20, 'hoge')
98.
こう考えてみるclass Hoge():
def __init__(self, age, name): self.age = age self.name = nameobj = Hoge(20, 'hoge')
99.
便利な書き方
100.
コメント# コメントdef func():
''' 関数のドキュメント ''' print 'Hello world!'
101.
コメント>>> help(func)Help on
function func in module __main__:func() 関数のドキュメント
102.
値の比較>>> x =
5>>> 1 < x < 10True>>> x < 10 < x*10 < 100True
103.
値を入れ替え>>> a =
10>>> b = 5>>> a, b = b, a>>> a, b(5, 10)
104.
戻り値を分けて入れる>>> a, b
= b, aこれができるのは、リスト代入(タプル代入)のおかげ>>> ip1, ip2, ip3, ip4 = ‘192.168.0.1’.split(‘.’)ip1 = 192, ip2 = 168, ip3 = 0, ip4 = 1
105.
配列のインデックス>>> items =
[‘A’, ‘B’, ‘C’]>>> for index,item in enumerate(items):>>> print index, item0 A1 B2 C
106.
後置if>>> i =
2>>> “hoge” if i%2==0 else “fuga”hoge>>> i = 1>>> “hoge” if i%2==0 else “fuga”fuga
107.
map>>> items =
[1,2,3,4,5]>>> map(str, items)[‘1’, ‘2’, ‘3’, ‘4’, ‘5’]>>> map(lambda x:x*x, items)[1, 4, 9, 16, 25]
108.
リスト内包表記result =
[do_something(i) for i in range(0, 10)]
109.
リスト>>> t =
[1,2,3,4,5]>>> t[1]2
110.
リスト>>> t =
[1,2,3,4,5]>>> t[-1]5>>> t[1:4][2,3,4]>>> t[2::-1][3,2,1]
111.
リスト>>> [1,2,3]+[4,5,6][1,2,3,4,5,6]>>> [1,2,3]*3[1,2,3,1,2,3,1,2,3]
112.
イテレータ>>> i =
iter('abc')>>> next(i)'a'>>> next(i)'b'>>> next(i)'c'>>> next(i)Traceback (most recent call last): File "<stdin>", line 1, in <module>StopIteration
113.
ジェネレータ・ジェネレータはイテレータを 簡単に生成するためのもの
114.
ジェネレータdef generator2():
i = 0 while True: yield i i += 1>>> g = generator2()>>> next(g)0>>> next(g)1
115.
ジェネレータfor i in
generator2(): print i
116.
Python入門•pythonの特徴•pythonの基本•pythonの色々
117.
色々というかウェブ開発
118.
WEBフレームワーク
119.
しっかり•Django•pylons(Pyramid)•google app engine•tornado
120.
さくっと•Flask•他にも山ほど。
121.
稼働環境
122.
ウェブサーバ•apache
•wsgi•nginx •fcgi•lighttpd •gunicorn
123.
PaaS•heroku
• DjangoZoom•dotcloud •OpenShift•fluxflex •Cloud Foundry•google app engine
124.
学習
125.
学習する価値• 基本はc/php/vb/perlと同じだけど、各 所で色々違っておもしろいよ。•
なにより書きやすい。
126.
学習する価値• rubyでウハウハしてるなら別に良いかも• 採用曲線の頂点(後は下るだけ)•
むしろ今からならjavascriptがいいかも
127.
おすすめ• 公式ドキュメントのチュートリアル
128.
おすすめ• Flaskのドキュメント
129.
Python入門•pythonの特徴•pythonの基本•pythonの色々
130.
今日帰ったら•手洗い•うがい•pythonインストール
131.
ふぅ
132.
今日話すこと•python入門•Dropbox APIを使ってみよう
133.
Dropbox APIを
つかってみよう•DropboxAPIとは•oauthとは•APIにアクセスしてみよう
134.
Dropbox APIを
つかってみよう•DropboxAPIとは•oauthとは•APIにアクセスしてみよう
135.
DropboxAPIとは
136.
DropboxAPIとは
137.
DropboxAPIとは
138.
APIでできること•アカウント情報の取得•ファイルのアップロード•ファイルのダウンロード•検索、共有、サムネイル取得
139.
APIでできること•ファイルのコピー•フォルダの作成•ファイルの移動•ファイルの削除
140.
詳しくは
141.
でもね
142.
すぐには使えません
143.
OAuth
144.
OAuthおーおーす
145.
OAuthとは•API認可の方法•認証(Authentication)ではな く•認可(Authorization)
146.
OAuthとは•twitterとかfacebookとか•もちろんDropboxも
147.
なぜ認可?
148.
たとえば•dropboxのAPIを使ってサービ スを提供するサイトがあって•これを利用しようとします
149.
利用者
サービス提供サイトあんたのサービス使わせてよ! dropbox
150.
利用者
サービス提供サイトいいけど、dropboxのアクセスに必要なユーザー名とパスワードを教えてちょ dropbox
151.
利用者
サービス提供サイトユーザー名とパスワードを入力 dropbox
152.
利用者
サービス提供サイト ユーザー名&パスワード データのやりとり dropbox
153.
利用者
サービス提供サイト ユーザー名&パスワード dropbox サービス提供サイトがアカウント情報を 持つことが問題!
154.
OAuthだと
155.
利用者
サービス提供サイトあんたのサービス使わせてよ! dropbox
156.
利用者
サービス提供サイト使いたいって人がいるんだけど、許可してくれない? dropbox
157.
利用者
サービス提供サイト dropboxそれは本人に聞いてみないと!あのサービス提供サイトがあなたのデータにアクセスしたいって言うんだけどいい?
158.
利用者
サービス提供サイト dropboxいいともー!
159.
利用者
サービス提供サイト アクセストークン いいってさー よかったねー dropbox
160.
利用者
サービス提供サイト アクセストークン dropbox アカウント情報をサービス提供サイトに 預ける必要がなくなる。
161.
認可API•/oauth/request_token•/oauth/authorize•/oauth/access_token
162.
Dropbox APIを
つかってみよう•DropboxAPIとは•oauthとは•APIにアクセスしてみよう
163.
1.登録•Dropboxにアプリ登録する•consumer key•consumer secret
key
164.
1.登録https://www.dropbox.com/developers
165.
1.登録
166.
1.登録
167.
1.登録
168.
1.登録consumer keyconsumer secret
key
169.
2.リクエストトークン•/oauth/request_token•cosumer keyとsecretを使う•必要な情報を固めてPOST•リクエストトークンを取得
170.
2.リクエストトークンここがめんどう
171.
2.リクエストトークン•oauth_consumer_key•oauth_signature_method•oauth_timestamp•oauth_nonce•oauth_version•oauth_signature
172.
2.リクエストトークンこれをPOST!
173.
2.リクエストトークン•成功するとリクエストトークンを 返してくれる•oauth_token_secret•oauth_token
174.
3.認証/認可URL•/oauth/authorize+トークン•利用者がURLにアクセスして許可 する
175.
3.認証/認可URL
176.
4.アクセストークン•/oauth/access_token•consumer keyとsecretを使う•リクエストトークンも使う•アクセストークンを取得
177.
4.アクセストークン•POSTする方法は リクエストトークン取得時+ リクエストトークンを投げる
178.
4.アクセストークン•成功するとアクセストークンを返 してくれる。•oauth_token_secret•oauth_token•uid
179.
5.APIの利用•アクセストークン•consumer keyとsecretを使う•各種APIへアクセス
180.
じつは•oauthは非常に面倒 oauth2策定中 実装してるところもある
facebook GraphAPI
181.
つまり
182.
今更OAuth1.0とか覚えなくていい
え・・・、じゃあ、今までのスライドは何のために・・・
183.
そこで
184.
Dropbox APIを
つかってみよう• DropboxAPIとは• oauthとは• APIにアクセスしてみよう•めんどくさいのでSDKを使う
185.
DropboxSDKとは
186.
SDKを使うと
188.
1.登録 consumer key
189.
SDKのクラスを作る
190.
2.リクエストトークン取得
191.
3.認可用URL作成
192.
4.アクセストークン取得
193.
5.APIの利用
194.
5.APIの利用
195.
5.APIの利用
196.
5.APIの利用
197.
5.APIの利用
198.
5.APIの利用
199.
Dropbox APIを つかってみよう文字列だけの画面見てもよくわからないからわかりやすいの見せろよ!
200.
こんなの作ってみるdropboxフォルダのファイル一覧
201.
環境構築# mkvirtualenv dropboxtest...開発用の仮想環境が準備される。(dropboxtest)#
pip install flask dropbox dotcloud...必要なパッケージがインストールされる。
202.
flaskサンプル1
203.
flaskサンプル1
204.
flaskサンプル2
205.
flaskサンプル2
206.
アプリ作成
207.
アプリ作成
208.
アプリ作成
209.
アプリ作成
210.
デプロイ
211.
デプロイ
212.
まとめ
213.
まとめ•pythonはキモくない
214.
まとめ•pythonはキモくない•ライブラリで面倒なことも楽勝
215.
まとめ•pythonはキモくない•ライブラリで面倒なことも楽勝•フレームワークもいい感じ
216.
まとめ•pythonはキモくない•ライブラリで面倒なことも楽勝•フレームワークもいい感じ•稼働環境も増えてきた
217.
pythonするなら
218.
いまがチャンス!
219.
以上です。ありがとうございました。 おつかれさまでした。
Download
[8]
ページ先頭
©2009-2025
Movatter.jp