SlideShare a Scribd company logo
Pythonを始めよう
自己紹介
自己紹介
吉海 将太
前職でUnity(C#)、Webアプリ(Python, Docker)、Pepperアプリ(Python)
の開発に携わりました。
今は、Python、GO、Docker、
Appengine, GCE、GKE、K8Sなど
Software Engineer
Kabuku, Inc.
https://www.kabuku.co.jp/
自己紹介
Twitterやってます。@yoshikai_
Mastodonは奈良トドンでファイレクシア鹿でやってます
https://mastodon.nara.jp
最近以下のイベントで登壇しました
Kubernetes Meetup Tokyo #4 at 2017/04/20
golang.tokyo #5 at 2017/04/27
会社説明
Pythonを始めよう
Pythonを始めよう
今日のターゲット
今日のターゲット
● Python未経験者
● Python初心者
今日のゴール
今日のゴール
● Pythonについてざっくり知ってもらう
● 家に帰ったらPythonを触る
● 履歴書にPythonでの開発経験ありとかけるようになる
今回の流れ
● Pythonについて
○ 特徴や他の言語との比較など
● Pythonを学ぼう
● Pythonで開発しよう
○ 弊社の開発フローを紹介
● 最近のTopic
● ハンズオン
○ Anaconda 使います
○ 勉強会のページにPython3.5って書いてあるんですが 3.6でも大丈夫です
Pythonについて
Pythonの特徴
● 読みやすい文法
● 直感的なオブジェクト指向
● 手続き型のコードによる、自然な表現
● パッケージの階層化もサポートした、完全なモジュール化サポート
● 例外ベースのエラーハンドリング
● 高レベルな動的データ型
● 拡張とモジュールはC/C++で書くのが容易
● 事実上すべてのタスクをこなせる、広範囲に及ぶ標準ライブラリとサードパーティの
モジュール
● 今最も熱い言語
とてもクリーンで読みやすい文法
Pythonの良いところ
● かぎかっこで囲む必要がなかったりと書くの楽
● 読みやすい
● 何をやるにもモジュールがあるので開発効率が最高
Pythonの気になるところ
● 動作速度が遅い
● タブで区切る文法が独特
● 日本語の情報が若干すくない(最近はそうでもない)
● Python2とPython3で互換性がない
● 2バイト文字の扱いが微妙(Python2のみ)
他の言語との比較
他言語との比較
他言語との比較
他言語との比較
Pythonを始めよう
Python 事例
● Dropbox
● Pepper
● Google (App Engine)
● Instagram
● Walt Disney
● NASA
Pythonの使い所
● Webアプリの開発
● AI、統計、科学計算
モジュールが豊富で書くのが楽なので、開発スピードが求められる案件に向いている
ただ、C++、Goなどと比べて処理速度や動作速度が劣る場合が多いので、高速な処理
速度が必要な箇所はPython以外を使うと良い
Pythonを学ぼう
オススメの書籍
初心者向け
みんなのPython 第4版(表紙がファンシーでかわいい)
中級者向け
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を使ったソフトウェアについて
情報交換、交流をするためのカンファレンスです。
Pythonを始めよう
実際に手を動かす
WebアプリでもDeepLearningでも何でもあるPythonなら楽しく学習出来ます!
あとは、コードレビューしてくれる人がいると尚良いです。
例:
Webアプリ開発したい! → DjangoやFlask!
DeepLearning ! → TensorFlow, Chainer
強化学習 → ChainerRL
Pythonで開発を始めよう
Python3とPython2
今から始めるならPython3がオススメ
Python2は2020年に終了予定!!(結構先^^;)
何月何日は未定
ただ、一部ライブラリーが2.7系でないと動かないので注意が必要
3と2のコードはだいたい一緒だが、完全互換ではないので後から移行するのは大変
コーディング規約 PEP8
Pythonのコードは基本的にpep8に準拠して書きます。
pep8をチェックするツールが提供されておりCIツールでチェックすることが可能です。
下記のような規約があります。
● 1レベルインデントするごとに、スペースを4つ使いましょう。
● すべての行の長さを、最大79文字までに制限しましょう(弊社ではignore)
● クラスの名前には通常 CapWords 方式を使うべきです
Python開発環境の構築
ANACONDAがオススメ
主要ライブラリをオールインワンでインストール出来て、すぐに開発に取りかかれます
https://www.continuum.io/downloads
Jupyter Notebook
ブラウザから使えるインタラクティブシェル
補完、グラフの表示が出来ます。
ちょっとしたことを試すのに便利です。
Pythonを始めよう
オススメのIDE
PyCharmの機能
● コード補完
● pep8準拠の警告表示
● Docker連携
● デバッカー、リモートデバッカー
● DjangoやAppEngineのRun
● Unittest(カバレッジをPythonファイルの行の色で表示)
● 豊富なplugin(Vim)
PyCharm使った開発
● PyCharmが指摘してきた箇所を直しながらコードを書く
○ pep8に違反している箇所など
警告が出てる時
問題ないとき
緑になる
ライブラリーの紹介
ライブラリー
Web系
● Django (フルスタックのフレームワーク)
● Flask (マイクロフレームワーク)
● requests(Httpのクライアントライブラリー
DeepLearning
● TensorFlow
● Caffe
● Chainer (日本製!)
● Keras
ライブラリー
ユニットテスト系
● Nosetest (弊社で使ってます)
● Pytest (テストのレポートがかなり詳細に表示されて便利)
ライブラリーを使う時の注意点
● 最初に標準ライブラリーで実現出来ないか調べる
○ https://docs.python.jp/3/library/
○ 依存関係を増やさないためにも標準ライブラリーを使おう
● 十分にメンテされているライブラリーか?
○ 十分にテストされているか?
○ 更新が止まっているモジュールでバグを踏むと悲惨
○ Pythonのバージョンが上がった場合に動かなくなる可能性がある
弊社の開発フロー
弊社の開発フロー
● git-flowで開発
○ 新規機能をfeature branchにcommit
○ そのfeature branchをdevelopにマージするプルリクエストを作る
○ プルリクエストに対して
■ CIのチェック
■ 人によるコードレビュー
CI (JenkinsかBitbucet pipeline)
弊社の開発フロー
pep8のチェック
Unitテスト
開発用のbranchにpush
$ pep8
$ nosetest --with-coverage
最近のTopic
今流行りのTypeHintsが使えるように!
関数のアノテーションの例
TypeHintsあり
TypeHinstなし
def greeting(name):
return 'Hello ' + name
def greeting(name: str) -> str:
return 'Hello ' + name
Release Python 3.7.0a0
リリース日: 2017/05/15
● 関数に256以上の引数を渡せるように!
● Importエラーが起きた時の表示が分かりやすくなった
https://docs.python.org/3.7/whatsnew/3.7.html
おまけ
Pythonの歴史
名前の由来は、イギリスのテレビ局 BBC が製作したコメディ番組『空飛ぶモンティ・パイ
ソン』
● 1991年 Python 0.90
● 2010年7月 Python2.7
● 2017年1月 Python3.6
カブクではエンジニアを募集してます!
● サーバーサイドエンジニア
○ Python, Google Cloud Platform
● フロントエンドエンジニア
○ TypeScriptやAngular
https://www.kabuku.co.jp/#jobs
Pythonを始めよう
ハンズオン
ターミナルで下記のコマンドを入力してjupyter notebookを起動して下さい
コマンドを実行したディレクトリにファイルが作れるのでファイルが保存できるディレクトリ
で実行して下さい
http://localhost:8888
公式チュートリアルの形式ばらない Python の紹介をやります
https://docs.python.jp/3/tutorial/introduction.html
$ jupyter notebook
演習問題 FizzBuzz
1から100までの数をプリントするプログラムを書け。ただし3の倍数のときは数の代わり
に「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には
「FizzBuzz」とプリントすること。

More Related Content

PDF
2017823 pythonを始めよう
PPTX
PyPro2の読みどころ紹介:Python開発の過去と現在
PDF
Namespace API を用いたマルチテナント型 Web アプリの実践
PDF
粗探しをしてGoのコントリビューターになる方法
PDF
エキスパートPythonプログラミング改訂3版の読みどころ
PDF
What is "Go" Gopher?
PDF
GoによるiOSアプリの開発
PDF
Go Friday 傑作選
2017823 pythonを始めよう
PyPro2の読みどころ紹介:Python開発の過去と現在
Namespace API を用いたマルチテナント型 Web アプリの実践
粗探しをしてGoのコントリビューターになる方法
エキスパートPythonプログラミング改訂3版の読みどころ
What is "Go" Gopher?
GoによるiOSアプリの開発
Go Friday 傑作選

What's hot (20)

PDF
Google Assistant関係のセッションまとめ
PDF
新人教育と(Javaと)Python
PDF
Pythonによるwebアプリケーション入門 - Django編-
PDF
Goだけでモバイルアプリを作ろう
PDF
Cloud Functionsの紹介
PDF
Goにおけるバージョン管理の必要性 − vgoについて −
PDF
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
PDF
goパッケージで型情報を用いたソースコード検索を実現する
PDF
Cloud functionsの紹介
PDF
The tale of I and python / Python とのはなし
PPTX
Bottle使ってPython学習一緒にはじめませんか?
PPTX
ちょっと真面目にPython&Django・基礎編
PDF
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
PPTX
PDF
今時のオンプレなgithubクローン環境構築
PDF
Effective Python 第2版をオンライン読書会で。
PDF
『自走プログラマー』 が我々に必要だった理由
PDF
WebAssembly with Go
PDF
オススメの標準・準標準パッケージ20選
PDF
過去に自作したGoプロダクトの紹介 - Goオールスターズ
Google Assistant関係のセッションまとめ
新人教育と(Javaと)Python
Pythonによるwebアプリケーション入門 - Django編-
Goだけでモバイルアプリを作ろう
Cloud Functionsの紹介
Goにおけるバージョン管理の必要性 − vgoについて −
静的解析とUIの自動生成を駆使してモバイルアプリの運用コストを大幅に下げた話
goパッケージで型情報を用いたソースコード検索を実現する
Cloud functionsの紹介
The tale of I and python / Python とのはなし
Bottle使ってPython学習一緒にはじめませんか?
ちょっと真面目にPython&Django・基礎編
RubyエンジニアがPythonをdisるためにPythonを勉強してみた
今時のオンプレなgithubクローン環境構築
Effective Python 第2版をオンライン読書会で。
『自走プログラマー』 が我々に必要だった理由
WebAssembly with Go
オススメの標準・準標準パッケージ20選
過去に自作したGoプロダクトの紹介 - Goオールスターズ
Ad

Similar to Pythonを始めよう (9)

PDF
Pythonを始めよう
PDF
Pythonを始めよう
PPTX
2017/12/21 虎の穴 Python勉強会
PDF
いつまでコードが書けるかとか考えたこともなかった - みんなのPython勉強会 #108
PPTX
Python エンジニアの作り方 2011.08 #pyconjp
ODP
Introduction of Python
PPTX
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
KEY
Hello World Python featuring GAE
PDF
はじめてのPython
Pythonを始めよう
Pythonを始めよう
2017/12/21 虎の穴 Python勉強会
いつまでコードが書けるかとか考えたこともなかった - みんなのPython勉強会 #108
Python エンジニアの作り方 2011.08 #pyconjp
Introduction of Python
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
Hello World Python featuring GAE
はじめてのPython
Ad

Pythonを始めよう