SlideShare a Scribd company logo
はじめてのPython
Google App Engineでお気軽
Webアプリ開発
本田 克己@GDD九州
こちらのイベント向けの資料です
https://www.facebook.com/events/272819922852292/
GDG九州って
GDG九州はGoogle関連の技術が好きな開発者、使っている開発者、使いた
い開発者の交流の場です。
Googleが直接運営している訳ではありません。
ちなまにGDGはGoogle Developer Groupsの頭文字らしいです。
以前はGTUG(Google Technology User Groups)という名前でした。
福岡の他、九州各地で勉強会を開いています。
昨年、大分では温泉合宿を行っています。
Google+やFacebookのグループで情報交換などを行なっています。
「GDG九州」で検索して、是非グループに参加してみてください。
はじめに
今日やること
●
Pythonのお勉強 : 20分
●
Google App EngineでWebアプリを作る : 20分
● その他の時間 : 5分
と、大丈夫ですか?って感じのスケジュールになっています。
インタラクティブシェルでPythonに触れてみる
Pythonには、インタラクティブシェルというのが用意されていま
す。
インタラクティブシェルを使うと対話的にPythonを使用できます。
Windowsな人 Macな人
スタートメニューから
Python(command line)
を実行します
ターミナルを開いて
python
と入力してreturnキー
ターミナルは、アプリケーショ
ンフォルダのユーティリティに
入っています。
Spotlightで検索してもいいかも
スタートメニューから
Python(command line)
を実行します
インタラクティブシェル
こんな感じのが表示されればOK
Pythonでプログラム書いてみる
インタラクティブシェルで、プログラムを書いてみます。
>>> の後ろに入力して、Enterキーを押します。
>>> 1 + 1
2
>>> print('Hello world!')
Hello world!
Python簡単だ�
インタラクティブシェルの終了
Windowsの人
Ctrl + z を押したあと、Returnキーを押します
>>> ^Z
となっている状態でReturnキー
Macの人
Ctrl + d を押します。
Pythonの基本 : 変数
データを保持しておくのに、変数を使うことができます。
変数名の大文字、小文字は区別されます。
変数の最初の文字に数字は使えません
変数に日本語などの文字は使えません(3.xからは使えます)
>>> a = 1
>>> b = 2
>>> c = 3
>>> a + b + c
6
>>> first_name = 'katsumi'
>>> last_name = 'honda'
>>> full_name = first_name + ' ' + last_name
>>> print(full_name)
katsumi honda
Pythonの基本 : 数値
数値は、割と直感的に使えるので、今のところは細かいことは気にし
なくても大丈夫です。
数値の先頭を0から始めると、8進数として扱われるので、ここだけ注
意してください。
(16進数は0xから始めます)
>>> a = 100 # 10進数
>>> b = 0100 # 8進数
>>> c = 0x100 # 16進数
>>> print(a, b, c)
(100, 64, 256)
>>>
Pythonの基本 : 数値の演算
加算 : +
減算 : -
乗算 : *
除算 : /
余り : %
べき乗 : **
>>> a = 10
>>> b = 3
>>> a + b
13
>>> a - b
7
>>> a * b
30
>>> a / b
3
>>> a % b
1
>>> a ** b
1000
Pythonの基本 : 文字列
文字列は、' か “ で囲みます。
クォーテーションの前にuをつけるとUnicode文字列になります。
日本語の文字列を扱う時は、Unicode文字列を使うようにしておいたほ
うが問題が起こりにくいので、uをつけるようにしましょう。
長い文字列はクォーテーションを3つ繋げて囲むと便利です。
>>> fruit = 'apple'
>>> fruit = u'りんご'
>>> print(fruit)
りんご
>>> long_text = u'''今日は
... はじめてのPythonに
... 参加しています'''
>>> print(long_text)
今日は
はじめてのPythonに
参加しています
Pythonの基本 : 何もない値
>>> money = None
>>> print(money)
None
何もないことを表すのに、Noneを使います。
Pythonの基本 : 真偽値
プログラムの条件分岐とかで使うやつです
True
False
と、頭文字が大文字になります
>>> t = True
>>> f = False
>>> t, f
(True, False)
Pythonの基本 : 論理演算
真偽値の組み合わせて判断する時に、論理演算を行います。
and or not を使います。
>>> True and True
True
>>> True and False
False
>>> False and False
False
>>> True or True
True
>>> True or False
True
>>> False or False
False
>>> not True
False
>>> not False
True
Pythonの基礎 : 文字列の操作
>>> 'hello ' + 'world'
'hello world'
■連結
文字列と文字列を + で繋げられます
>>> 'hello' * 10
'hellohellohellohellohellohellohellohellohellohello'
■繰り返し
文字列に数字を掛けると、文字列を繰り返します
■フォーマット
%sや%d等を含んだフォーマット文字列に、%演算を行うと値を埋め込めます
>>> 'hello %dst %s' % (1, 'python')
'hello 1st python'
Pythonの基本 : リスト、タプル、辞書
複数の値を扱うのに、リストやタプル、辞書を使うと便利です
■リスト
順序を持った値の集合です。
値の追加や削除など、変更が行えます。
[ と ]で囲んで、値をカンマで区切ります。
■タプル
リストと同じような感じですが、変更が行えません。
( と )で囲んで、値をカンマで区切ります。
■辞書
キーと値を組み合わせた集合です。
連想配列とかいうのと同じです。
{ と }で囲んで、
キー: 値の組み合わせをカンマで区切ります
Pythonの基本 : リスト
>>> mylist = ['apple', 100]
>>> mylist[0]
'apple'
>>> mylist[1]
100
>>> mylist[2]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
>>> mylist.append(True)
>>> mylist
['apple', 100, True]
1つのリストに色々な型の値を入れることができます。
リストの変数の後に [] で数字を指定すると、その場所の値が得られます
(この数字を添字といいます)
appendでリストに追加できます
Pythonの基本 : タプル
>>> mytuple = ('abc', 123)
>>> mytuple[0]
'abc'
>>> mytuple[1]
123
>>> mytuple[1] = 234
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
リストと同じように使えますが、変更だけできません。
Pythonの基本 : 辞書
>>> mydict = {'name': 'apple', 'price': 100, 1: True}
>>> mydict
{1: True, 'price': 100, 'name': 'apple'}
>>> mydict['name']
'apple'
>>> mydict[1]
True
キーには、文字列以外に数値など、使用出来ます。
が、文字列を使うことがほとんどです。
タプルもたまにキーに使うことがあります。
リストはキーには使えません。
>>> mydict[(1,1)] = 'red'
>>> mydict
{1: True, 'price': 100, 'name': 'apple', (1, 1): 'red'}
Pythonの基本 : インデント
Pythonでは、コードブロックを表すのにインデントが使われます。
こんな感じになります。
とりあえず入力して実行してみましょう
>>> for i in range(50):
... if i > 0 and (i % 3 == 0 or i % 10 == 3):
... print i
...
インデントをつける前の行末のコロン : を忘れないように気を
つけてください。
インデントの数は、同じコードブロックで統一されていれば問
題ありません。
一般的にはインデントに半角スペースを4つ使用します。
Pythonの基本 : 条件分岐
変数の内容などによって、プログラムの動作を切り替えたりするの
を条件分岐といいます。
if else elif を使います。
>>> food = 'karaage'
>>> if food == 'toriten':
... print 'nice!'
... elif food == 'karaage':
... print 'so-so'
... else:
... print 'what?'
...
so-so
Pythonの基本 : 繰り返し
繰り返して処理を行う時は、forループかwhileループを使います。
■forループ
リスト等の集合を1つずつ取り出して実行します。
range()関数で任意の数の、リストが生成できるので組み合わせて
使用することも多いです。
>>> for i in range(10):
... print i
...
0
1
2
3
4
5
6
7
8
9
Pythonの基本 : whileループ
条件が真(True)の間、繰り返し処理を行います
>>> i = 10
>>> while i > 0:
... print i
... i = i - 1
...
10
9
8
7
6
5
4
3
2
1
Pythonの基本 : 繰り返し
>>> for food in ['toriten', 'karaage', 'tatutaage']:
... print '%s : %d' % (food, len(food))
...
toriten : 7
karaage : 7
tatutaage : 9
任意のリストを順番に処理できます。任意のリストを順番に処理できます。
ここでは、それぞれの文字数を表示しています。
len()関数で、文字の長さや、リストの長さを取得できます。
Pythonの基本 : 関数
何度も行う処理は、コピペしないで関数にまとめます。
def 関数名(パラメータ1, パラメータ2, ...):
関数の処理
return 処理結果
といった感じで関数を定義します。
関数を実行する時は
関数名(パラメータ1, パラメータ2, …)
という感じです。
Pythonの基本 : 関数
>>> def oita_check(food):
... if 'toriten' == food:
... return 'nice'
... elif 'karaage' == food:
... return 'so-so'
... else:
... return 'what?'
...
>>> oita_check('tatutaage')
'what?'
>>> oita_check('toriten')
'nice'
>>>
大分チェック関数を作ってみる
Pythonの基本 : モジュール
様々な機能がモジュールとして提供されています。
モジュールの機能を使う為には、 import で、モジュールをインポート
します。
>>> import datetime
>>> datetime.datetime.now()
datetime.datetime(2013, 4, 18, 15, 45, 32, 263188)
datetimeモジュールをインポートして、現在日時を取得しています。
datetime.datetimeというのが冗長ですが、
from モジュール名 import インポートするもの
という形式を使用することもできます
>>> from datetime import datetime
>>> datetime.now()
datetime.datetime(2013, 4, 18, 15, 51, 4, 803230)
Pythonの基本 : クラス
オブジェクト指向とかいうので出てくるクラスです。
class Food(object):
def __init__(self, name, price):
self.name = name
self.price = price
def how_match(self, gram):
print '%sの値段は%d円です' % (self.name,
self.price * gram / 100.0)
toriten = Food(u'とり天', 200)
toriten.how_match(150)
こんな感じで使います。
クラスの名前は、大文字で始めるのが一般的です。
クラス名(パラメータ...)で、オブジェクトが作られます
__init__関数は、オブジェクトが作られる時に呼ばれます
Pythonの基本
他にも、色々と知っておいたほうがいい決まりとか、便利な機能と
かがあるのですが、これまでの内容がなんとなくわかれば、なん
となく作り始められます。
全部を理解していなくても大丈夫です。
エディタを使う
インタラクティブシェルは、すぐ実行結果が分かって便利ですが
何回も使うコードを毎回入力するのは大変です。
エディタを使って、コードをファイルに保存しましょう。
文字コードの指定
ファイルを保存する時は、UTF-8を指定してください。
(UTF-8じゃないとダメって訳じゃないですが、統一しておきます)
ファイルの拡張子は .py にします。
ファイルの1行目か2行目に、
# -*- coding: utf8 -*-
という行を入力します。
(これでPythonにファイルの文字コードを教えてあげています)
エディタでコードを書いてみる
#!/usr/bin/env python
# -*- coding: utf8 -*-
class Food(object):
def __init__(self, name, price):
self.name = name
self.price = price
def how_match(self, gram):
unit = gram / 100.0
print('%s : %d' % (self.name, self.price * unit))
if __name__ == '__main__':
karaage = Food('karaage', 200)
toriten = Food('toriten', 180)
karaage.how_match(200)
toriten.how_match(300)
アプリケーションの設定
Application Nameに guest-book
Application Directoryに デスクトップ等を指定して
[Create]ボタンを押します。
Admin Port, Portは、他の開発ツールとバッティングしないように
気をつけてください。
起動してみる
guest-bookが選択された状態で、[Run]ボタンを押します。
Webブラウザで http://localhost:8080/ にアクセスします。
Port番号を変更した場合は、8080の部分を合わせてください。
Google App EngineでWebアプリを作る
準備万端なので、いよいよWebアプリを作ります。
ゲストブック的なものを作ってみましょう。
まずはGoogleAppEngineLauncherを起動します。
メニューから [File] → [New Application] を選択します
Hello world!
Hello world!!
って表示されました?
表示できた人は、周りで困っている人がいたら助けてあげてください
入力フォーム
guest-bookのmain.pyを開いて編集していきます。
2行目に
# -*- coding: utf8 -*-
を追加します。
template という変数名で、HTMLを入力します。
MainHandlerクラスのget関数内の
self.response.write() に templateを渡します
import webapp2
template = u'''<!doctype html>
<html>
<head><title>ゲストブック</title></head>
<body>
<h1>ゲストブック</h1>
<form method="post">
<label>お名前<input type="text" name="name"></label><br>
<label>メッセージ<input type="text" name="message"></label><br>
<input type="submit" value="書き込む">
</form>
</body>
</html>
'''
class MainHandler(webapp2.RequestHandler):
def get(self):
self.response.write(template)
app = webapp2.WSGIApplication([
('/', MainHandler)
], debug=True)
ブラウザをリロードすると、
こんな画面が表示されます。
[書き込み]ボタンを押すと
怒られます
MainHandlerクラスに、post関数を追加します。
(とりあえず get と同じにしておきます )
class MainHandler(webapp2.RequestHandler):
def get(self):
self.response.write(template)
def post(self):
self.response.write(template)
入力内容を表示してみる
postしたときに、フォームの内容を表示するようにしてみます。
postしたフォームの内容は、
self.request.POST['名前']
で取得出来ます。
templateをフォームの内容を表示する前の部分と、後ろの部分に分割
import webapp2
template1 = u'''<!doctype html>
<html>
省略
<input type="submit" value="書き込む">
</form>'''
template2 = u'''</body>
</html>
'''
class MainHandler(webapp2.RequestHandler):
def get(self):
self.response.write(template1)
self.response.write(template2)
def post(self):
self.response.write(template1)
name = self.request.POST['name']
message = self.request.POST['message']
append = "%s : %s" % (name, message)
self.response.write(append)
self.response.write(template2)
import webapp2
template1 = u'''<!doctype html>
<html>
省略
<input type="submit" value="書き込む">
</form>'''
template2 = u'''</body>
</html>
'''
class MainHandler(webapp2.RequestHandler):
def get(self):
self.response.write(template1)
self.response.write(template2)
def post(self):
self.response.write(template1)
name = self.request.POST['name']
message = self.request.POST['message']
append = "%s : %s" % (name, message)
self.response.write(append)
self.response.write(template2)
保存してみる
データを保存するためのクラスを定義します。
from google.appengine.ext import db
class Greeting(db.Model):
author = db.StringProperty()
message = db.StringProperty(multiline=True)
date = db.DateTimeProperty(auto_now_add=True)
postした時に、Greetingオブジェクトを保存するようにします
greeting = Greeting()
greeting.author = name
greeting.message = message
greeting.put()
管理画面
http://localhost:8000/ にアクセスすると、管理画面が表示されます。
Datastore Viewerを開くと、データの登録状況が確認できます。
保存内容を表示する
def render(self):
self.response.write(template1)
greetings = db.GqlQuery("SELECT * FROM Greeting")
for greeting in greetings:
self.response.write(
'%s : %s<br>' % (cgi.escape(greeting.author),
cgi.escape(greeting.message))
)
self.response.write(template2)
getでもpostでも表示できるように、render関数を追加してみます
データの取得は、db.GqlQueryで行えます
def get(self):
self.render()
def post(self):
name = self.request.POST['name']
message = self.request.POST['message']
greeting = Greeting()
greeting.author = name
greeting.message = message
greeting.put()
self.render()
getとpostから、render関数を呼ぶように変更します。
今日はここまで!
おつかれさまでした�

More Related Content

What's hot

科学技術計算関連Pythonパッケージの概要
科学技術計算関連Pythonパッケージの概要科学技術計算関連Pythonパッケージの概要
科学技術計算関連Pythonパッケージの概要
Toshihiro Kamishima
 
Introduction of Python
Introduction of PythonIntroduction of Python
Introduction of Python
Tomoya Nakayama
 
【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説
【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説
【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説
Unity Technologies Japan K.K.
 
Juliaによる予測モデル構築・評価
Juliaによる予測モデル構築・評価Juliaによる予測モデル構築・評価
Juliaによる予測モデル構築・評価Shintaro Fukushima
 
[機械学習]文章のクラス分類
[機械学習]文章のクラス分類[機械学習]文章のクラス分類
[機械学習]文章のクラス分類
Tetsuya Hasegawa
 
Python基礎その2
Python基礎その2Python基礎その2
Python基礎その2
大貴 末廣
 
DS Exercise Course 2
DS Exercise Course 2DS Exercise Course 2
DS Exercise Course 2
大貴 末廣
 
Python基礎その1
Python基礎その1Python基礎その1
Python基礎その1
大貴 末廣
 
実験心理学者のためのPython
実験心理学者のためのPython実験心理学者のためのPython
実験心理学者のためのPython
Masataka Miyoshi
 

What's hot (10)

科学技術計算関連Pythonパッケージの概要
科学技術計算関連Pythonパッケージの概要科学技術計算関連Pythonパッケージの概要
科学技術計算関連Pythonパッケージの概要
 
Introduction of Python
Introduction of PythonIntroduction of Python
Introduction of Python
 
Juliaで並列計算
Juliaで並列計算Juliaで並列計算
Juliaで並列計算
 
【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説
【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説
【Unite 2018 Tokyo】そろそろ楽がしたい!新アセットバンドルワークフロー&リソースマネージャー詳細解説
 
Juliaによる予測モデル構築・評価
Juliaによる予測モデル構築・評価Juliaによる予測モデル構築・評価
Juliaによる予測モデル構築・評価
 
[機械学習]文章のクラス分類
[機械学習]文章のクラス分類[機械学習]文章のクラス分類
[機械学習]文章のクラス分類
 
Python基礎その2
Python基礎その2Python基礎その2
Python基礎その2
 
DS Exercise Course 2
DS Exercise Course 2DS Exercise Course 2
DS Exercise Course 2
 
Python基礎その1
Python基礎その1Python基礎その1
Python基礎その1
 
実験心理学者のためのPython
実験心理学者のためのPython実験心理学者のためのPython
実験心理学者のためのPython
 

Similar to はじめてのPython

Replace Output Iterator and Extend Range JP
Replace Output Iterator and Extend Range JPReplace Output Iterator and Extend Range JP
Replace Output Iterator and Extend Range JPAkira Takahashi
 
20170131 python3 6 PEP526
20170131 python3 6 PEP526 20170131 python3 6 PEP526
20170131 python3 6 PEP526
masahitojp
 
【18-C-4】Google App Engine - 無限の彼方へ
【18-C-4】Google App Engine - 無限の彼方へ【18-C-4】Google App Engine - 無限の彼方へ
【18-C-4】Google App Engine - 無限の彼方へDevelopers Summit
 
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
Yoshifumi Kawai
 
2018/06/23 Sony"s deep learning software and the latest information
2018/06/23 Sony"s deep learning software and the latest information2018/06/23 Sony"s deep learning software and the latest information
2018/06/23 Sony"s deep learning software and the latest information
Sony Network Communications Inc.
 
Pythonと型チェッカー
Pythonと型チェッカーPythonと型チェッカー
Pythonと型チェッカー
Tetsuya Morimoto
 
Teclab3
Teclab3Teclab3
react勉強会 #4
react勉強会 #4react勉強会 #4
react勉強会 #4
KentaIwadate
 
Introduction to Chainer (LL Ring Recursive)
Introduction to Chainer (LL Ring Recursive)Introduction to Chainer (LL Ring Recursive)
Introduction to Chainer (LL Ring Recursive)
Kenta Oono
 
DATUM STUDIO PyCon2016 Turorial
DATUM STUDIO PyCon2016 TurorialDATUM STUDIO PyCon2016 Turorial
DATUM STUDIO PyCon2016 Turorial
Tatsuya Tojima
 
po-1. プログラミング入門
po-1. プログラミング入門po-1. プログラミング入門
po-1. プログラミング入門
kunihikokaneko1
 
【プログラミング教室】テキスト
【プログラミング教室】テキスト【プログラミング教室】テキスト
【プログラミング教室】テキスト
Manabu Ikarashi
 
Python を使ってカメリオを高速化した話
Python を使ってカメリオを高速化した話Python を使ってカメリオを高速化した話
Python を使ってカメリオを高速化した話
Nozomu Kaneko
 
Geeklog2.1新機能紹介 20140723
Geeklog2.1新機能紹介 20140723Geeklog2.1新機能紹介 20140723
Geeklog2.1新機能紹介 20140723
Tetsuko Komma
 
エンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJSエンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJSAyumi Goto
 
QML を用いた YouTube クライアントの作成 - 関東 Qt 勉強会
QML を用いた YouTube クライアントの作成 - 関東 Qt 勉強会QML を用いた YouTube クライアントの作成 - 関東 Qt 勉強会
QML を用いた YouTube クライアントの作成 - 関東 Qt 勉強会Jumpei Ogawa
 
Pythonで始めるtoC向けWebサービス入門
Pythonで始めるtoC向けWebサービス入門Pythonで始めるtoC向けWebサービス入門
Pythonで始めるtoC向けWebサービス入門
創史 花村
 
Easy caching and logging package using annotation in Python
Easy caching and logging package using annotation in PythonEasy caching and logging package using annotation in Python
Easy caching and logging package using annotation in Python
Yasunori Horikoshi
 
条件式評価器の実装による管理ツールの抽象化
条件式評価器の実装による管理ツールの抽象化条件式評価器の実装による管理ツールの抽象化
条件式評価器の実装による管理ツールの抽象化
Takuya Ueda
 
Mroonga・PGroonga導入方法
Mroonga・PGroonga導入方法Mroonga・PGroonga導入方法
Mroonga・PGroonga導入方法
Kouhei Sutou
 

Similar to はじめてのPython (20)

Replace Output Iterator and Extend Range JP
Replace Output Iterator and Extend Range JPReplace Output Iterator and Extend Range JP
Replace Output Iterator and Extend Range JP
 
20170131 python3 6 PEP526
20170131 python3 6 PEP526 20170131 python3 6 PEP526
20170131 python3 6 PEP526
 
【18-C-4】Google App Engine - 無限の彼方へ
【18-C-4】Google App Engine - 無限の彼方へ【18-C-4】Google App Engine - 無限の彼方へ
【18-C-4】Google App Engine - 無限の彼方へ
 
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
 
2018/06/23 Sony"s deep learning software and the latest information
2018/06/23 Sony"s deep learning software and the latest information2018/06/23 Sony"s deep learning software and the latest information
2018/06/23 Sony"s deep learning software and the latest information
 
Pythonと型チェッカー
Pythonと型チェッカーPythonと型チェッカー
Pythonと型チェッカー
 
Teclab3
Teclab3Teclab3
Teclab3
 
react勉強会 #4
react勉強会 #4react勉強会 #4
react勉強会 #4
 
Introduction to Chainer (LL Ring Recursive)
Introduction to Chainer (LL Ring Recursive)Introduction to Chainer (LL Ring Recursive)
Introduction to Chainer (LL Ring Recursive)
 
DATUM STUDIO PyCon2016 Turorial
DATUM STUDIO PyCon2016 TurorialDATUM STUDIO PyCon2016 Turorial
DATUM STUDIO PyCon2016 Turorial
 
po-1. プログラミング入門
po-1. プログラミング入門po-1. プログラミング入門
po-1. プログラミング入門
 
【プログラミング教室】テキスト
【プログラミング教室】テキスト【プログラミング教室】テキスト
【プログラミング教室】テキスト
 
Python を使ってカメリオを高速化した話
Python を使ってカメリオを高速化した話Python を使ってカメリオを高速化した話
Python を使ってカメリオを高速化した話
 
Geeklog2.1新機能紹介 20140723
Geeklog2.1新機能紹介 20140723Geeklog2.1新機能紹介 20140723
Geeklog2.1新機能紹介 20140723
 
エンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJSエンタープライズ分野での実践AngularJS
エンタープライズ分野での実践AngularJS
 
QML を用いた YouTube クライアントの作成 - 関東 Qt 勉強会
QML を用いた YouTube クライアントの作成 - 関東 Qt 勉強会QML を用いた YouTube クライアントの作成 - 関東 Qt 勉強会
QML を用いた YouTube クライアントの作成 - 関東 Qt 勉強会
 
Pythonで始めるtoC向けWebサービス入門
Pythonで始めるtoC向けWebサービス入門Pythonで始めるtoC向けWebサービス入門
Pythonで始めるtoC向けWebサービス入門
 
Easy caching and logging package using annotation in Python
Easy caching and logging package using annotation in PythonEasy caching and logging package using annotation in Python
Easy caching and logging package using annotation in Python
 
条件式評価器の実装による管理ツールの抽象化
条件式評価器の実装による管理ツールの抽象化条件式評価器の実装による管理ツールの抽象化
条件式評価器の実装による管理ツールの抽象化
 
Mroonga・PGroonga導入方法
Mroonga・PGroonga導入方法Mroonga・PGroonga導入方法
Mroonga・PGroonga導入方法
 

More from Katsumi Honda

Ionicアプリのデータ管理
Ionicアプリのデータ管理Ionicアプリのデータ管理
Ionicアプリのデータ管理
Katsumi Honda
 
Angularで新サービス作って学んだこととか
Angularで新サービス作って学んだこととかAngularで新サービス作って学んだこととか
Angularで新サービス作って学んだこととか
Katsumi Honda
 
1粒で6度おいしい(かもしれない) Ionicのススメ
1粒で6度おいしい(かもしれない) Ionicのススメ1粒で6度おいしい(かもしれない) Ionicのススメ
1粒で6度おいしい(かもしれない) Ionicのススメ
Katsumi Honda
 
Meteor intro-2015-rev1- 日本語バージョン
Meteor intro-2015-rev1- 日本語バージョンMeteor intro-2015-rev1- 日本語バージョン
Meteor intro-2015-rev1- 日本語バージョン
Katsumi Honda
 
はじめてのMeteor
はじめてのMeteorはじめてのMeteor
はじめてのMeteor
Katsumi Honda
 
Mobile Backend Starterを使ってサクサクアプリ開発
Mobile Backend Starterを使ってサクサクアプリ開発Mobile Backend Starterを使ってサクサクアプリ開発
Mobile Backend Starterを使ってサクサクアプリ開発
Katsumi Honda
 
ヨーマンおじさんと戯れる会
ヨーマンおじさんと戯れる会ヨーマンおじさんと戯れる会
ヨーマンおじさんと戯れる会Katsumi Honda
 
イマドキのWebアプリの作り方
イマドキのWebアプリの作り方イマドキのWebアプリの作り方
イマドキのWebアプリの作り方Katsumi Honda
 
はじめてのPython - 開発環境の準備 for Mac
はじめてのPython - 開発環境の準備 for MacはじめてのPython - 開発環境の準備 for Mac
はじめてのPython - 開発環境の準備 for Mac
Katsumi Honda
 
はじめてのPython - 開発環境の準備 for Windows
はじめてのPython - 開発環境の準備 for WindowsはじめてのPython - 開発環境の準備 for Windows
はじめてのPython - 開発環境の準備 for Windows
Katsumi Honda
 
冬だからAndroid再入門
冬だからAndroid再入門冬だからAndroid再入門
冬だからAndroid再入門
Katsumi Honda
 
Osc2012 appinventor のその後
Osc2012 appinventor のその後Osc2012 appinventor のその後
Osc2012 appinventor のその後
Katsumi Honda
 
秋だからEclipse再入門
秋だからEclipse再入門秋だからEclipse再入門
秋だからEclipse再入門Katsumi Honda
 
夏だからJava再入門
夏だからJava再入門夏だからJava再入門
夏だからJava再入門
Katsumi Honda
 
OSC2011 Androidハンズオン
OSC2011 AndroidハンズオンOSC2011 Androidハンズオン
OSC2011 Androidハンズオン
Katsumi Honda
 
雲から機器へ伝達させる為の枠組み
雲から機器へ伝達させる為の枠組み雲から機器へ伝達させる為の枠組み
雲から機器へ伝達させる為の枠組み
Katsumi Honda
 
激安Androidタブレットを買ってみた
激安Androidタブレットを買ってみた激安Androidタブレットを買ってみた
激安Androidタブレットを買ってみたKatsumi Honda
 
はじめてのAndroid開発
はじめてのAndroid開発はじめてのAndroid開発
はじめてのAndroid開発
Katsumi Honda
 

More from Katsumi Honda (18)

Ionicアプリのデータ管理
Ionicアプリのデータ管理Ionicアプリのデータ管理
Ionicアプリのデータ管理
 
Angularで新サービス作って学んだこととか
Angularで新サービス作って学んだこととかAngularで新サービス作って学んだこととか
Angularで新サービス作って学んだこととか
 
1粒で6度おいしい(かもしれない) Ionicのススメ
1粒で6度おいしい(かもしれない) Ionicのススメ1粒で6度おいしい(かもしれない) Ionicのススメ
1粒で6度おいしい(かもしれない) Ionicのススメ
 
Meteor intro-2015-rev1- 日本語バージョン
Meteor intro-2015-rev1- 日本語バージョンMeteor intro-2015-rev1- 日本語バージョン
Meteor intro-2015-rev1- 日本語バージョン
 
はじめてのMeteor
はじめてのMeteorはじめてのMeteor
はじめてのMeteor
 
Mobile Backend Starterを使ってサクサクアプリ開発
Mobile Backend Starterを使ってサクサクアプリ開発Mobile Backend Starterを使ってサクサクアプリ開発
Mobile Backend Starterを使ってサクサクアプリ開発
 
ヨーマンおじさんと戯れる会
ヨーマンおじさんと戯れる会ヨーマンおじさんと戯れる会
ヨーマンおじさんと戯れる会
 
イマドキのWebアプリの作り方
イマドキのWebアプリの作り方イマドキのWebアプリの作り方
イマドキのWebアプリの作り方
 
はじめてのPython - 開発環境の準備 for Mac
はじめてのPython - 開発環境の準備 for MacはじめてのPython - 開発環境の準備 for Mac
はじめてのPython - 開発環境の準備 for Mac
 
はじめてのPython - 開発環境の準備 for Windows
はじめてのPython - 開発環境の準備 for WindowsはじめてのPython - 開発環境の準備 for Windows
はじめてのPython - 開発環境の準備 for Windows
 
冬だからAndroid再入門
冬だからAndroid再入門冬だからAndroid再入門
冬だからAndroid再入門
 
Osc2012 appinventor のその後
Osc2012 appinventor のその後Osc2012 appinventor のその後
Osc2012 appinventor のその後
 
秋だからEclipse再入門
秋だからEclipse再入門秋だからEclipse再入門
秋だからEclipse再入門
 
夏だからJava再入門
夏だからJava再入門夏だからJava再入門
夏だからJava再入門
 
OSC2011 Androidハンズオン
OSC2011 AndroidハンズオンOSC2011 Androidハンズオン
OSC2011 Androidハンズオン
 
雲から機器へ伝達させる為の枠組み
雲から機器へ伝達させる為の枠組み雲から機器へ伝達させる為の枠組み
雲から機器へ伝達させる為の枠組み
 
激安Androidタブレットを買ってみた
激安Androidタブレットを買ってみた激安Androidタブレットを買ってみた
激安Androidタブレットを買ってみた
 
はじめてのAndroid開発
はじめてのAndroid開発はじめてのAndroid開発
はじめてのAndroid開発
 

はじめてのPython