自己紹介
吉海 将太
大学院卒業後にUnity(C#)、Webアプリ(Python, Docker)、Pepperアプ
リ(Python)の開発に携わる
好きな言葉は「フィジカルが強い」
Software Engineer
Kabuku, Inc.
https://www.kabuku.co.jp/
自己紹介
GitHub, Docker Hubはtinjyuuっていう名前でやってます
最近は、PythonだけでなくGO言語、Docker、Appengine, GCEなども
カブクについて
ものづくりの民主化へ。
KABUKUの「かぶく」は、歌舞伎の語源でもあります。
「かぶく」ことは、新しい価値観の発見と創造です。
「かぶくもの」として、デジタル製造技術による新しいモノ作りの枠組みを用意しました。
私たちは新しい「つくる」を通して、社会を楽しくするお手伝いをしていきます。
Rinkak マーケットプレイス
Kabuku開発ブログ https://www.kabuku.co.jp/developers
今回のターゲット
● Python未経験者
● Python初心者
今回の流れ
● Pythonについて
● Pythonを学ぼう
● Pythonで開発しよう
● 最近のTopic
● ハンズオン
Pythonについて
Pythonの特徴
● 読みやすい文法
● 直感的なオブジェクト指向
● 手続き型のコードによる、自然な表現
● パッケージの階層化もサポートした、完全なモジュール化サポート
● 例外ベースのエラーハンドリング
● 高レベルな動的データ型
● 拡張とモジュールはC/C++で書くのが容易
● 事実上すべてのタスクをこなせる、広範囲に及ぶ標準ライブラリとサードパーティの
モジュール
● 今最も熱い言語
とてもクリーンで読みやすい文法
個人的な意見
● 書くのがとにかく楽。かぎかっこで囲む必要がない
● しかも読みやすい
● 何をやるにもモジュールがあるので開発効率が最高
Pythonの気になるところ
● 動作速度が遅い
● タブで区切る文法が独特
● 日本語の情報が若干すくない(最近はそうでもない)
● Python2とPython3で互換性がない
● 2バイト文字の扱いが微妙(Python2のみ)
Pythonの歴史
名前の由来は、イギリスのテレビ局 BBC が製作したコメディ番組『空飛ぶモンティ・パイ
ソン』
● 1991年 Python 0.90
● 2010年7月 Python2.7
● 2017年1月 Python3.6
他言語との比較
他言語との比較
他言語との比較
Python 事例
● Dropbox
● Pepper
● Google (App Engine)
● Instagram
● Walt Disney
Pythonを学ぼう
オススメの書籍
初心者向け
みんなのPython (表紙がファンシーでかわいい)
中級者向け
Effective Python (必読)
効率的で優れたプログラムはどのように書けばよいのか、を指南。
ベストプラクティス、ヒント、落とし穴の避け方や達人プログラマのコードなどを紹介し、効
果的な優れたPythonプログラムを書くノウハウをまとめています。
Python Japan http://www.python.jp/
● 和訳ドキュメント
● ニュース
● イベント
● 求人情報
● コミュニティ
最近、Slackのチャンネルが出来ました
http://www.python.jp/news/pythonjp_slack.html
公式ドキュメント
日本語
https://docs.python.jp/3/
英語
https://docs.python.org/3/
知りたいことがあったらまず公式ドキュメントを読もう!
公式チュートリアル
Python チュートリアル
https://docs.python.jp/3/tutorial/index.html
カンファレンス
PyCon JP
PyCon JPは、Pythonユーザが集まり、PythonやPythonを使ったソフトウェアについて
情報交換、交流をするためのカンファレンスです。
実際に手を動かす
WebアプリでもDeepLearningでも何でもあるPythonなら楽しく学習出来ます!
あとは、コードレビューしてくれる人がいると尚良いです。
例:
Webアプリ開発したい! → DjangoやFlask!
DeepLearning ! → TensorFlow, Chainer
Pythonで開発を始めよう
Python3とPython2
今から始めるならPython3がオススメ
Python2は2020年に終了予定!!(結構先^^;)
Python3.6が最新 (Release Date: January 23, 2017)
ただ、一部ライブラリーが2.7系でないと動かないので注意が必要
3と2のコードはだいたい一緒だが、完全互換ではないので後から移行するのは大変
コーディング規約 PEP8
Pythonのコードは基本的にpep8に準拠して書きます。
pep8をチェックするツールが提供されておりCIツールでチェックすることが可能です。
下記のような規約があります。
● 1レベルインデントするごとに、スペースを4つ使いましょう。
● すべての行の長さを、最大79文字までに制限しましょう(弊社ではignore)
● クラスの名前には通常 CapWords 方式を使うべきです
Python開発環境の構築
ANACONDAがオススメ
主要ライブラリをオールインワンでインストール出来て、すぐに開発に取りかかれます
https://www.continuum.io/downloads
Jupyter Notebook
ブラウザから使えるインタラクティブシェル
補完、グラフの表示が出来ます。
ちょっとしたことを試すのに便利です。
オススメのIDE
Pycharmの機能
● コード補完
● pep8準拠の警告表示
● Docker連携
● デバッカー、リモートデバッカー
● DjangoやAppEngineのRun
● Unittest(カバレッジをPythonファイルの行の色で表示)
● 豊富なplugin(Vim)
ライブラリー
Web系
● Django (フルスタックのフレームワーク)
● Flask (マイクロフレームワーク)
● requests(Httpのクライアントライブラリー
DeepLearning
● TensorFlow
● Caffe
● Chainer (日本製!)
● Keras
ライブラリー
ユニットテスト系
● Nosetest
● Pytest (テストのレポートがかなり詳細に表示されて便利)
CIツールとの連携
Jenkins
● PEP8のチェック
● Nosetest
最近のTopic
今流行りのTypeHintsが使えるように!
関数のアノテーションの例
TypeHintsあり
def greeting(name: str) -> str:
return 'Hello ' + name
TypeHinstなし
def greeting(name):
return 'Hello ' + name
カブクではエンジニアを募集してます!
● サーバーサイドエンジニア
○ Python, Google Cloud Platform
● フロントエンドエンジニア
○ TypeScriptやAngular
https://www.kabuku.co.jp/#jobs
ハンズオン
ターミナルで下記のコマンドを入力してjupyter notebookを起動して下さい
jupyter notebook
http://localhost:8888
公式チュートリアルの形式ばらない Python の紹介をやります
https://docs.python.jp/3/tutorial/introduction.html
演習問題 FizzBuzz
1から100までの数をプリントするプログラムを書け。ただし3の倍数のときは数の代わり
に「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には
「FizzBuzz」とプリントすること。

Pythonを始めよう