34
Pythonを始めよう 一から始めるPython入門 2017/01/26 吉海 将太

Pythonを始めよう

Embed Size (px)

Citation preview

Page 1: Pythonを始めよう

Pythonを始めよう一から始めるPython入門

2017/01/26

吉海 将太

Page 2: Pythonを始めよう

自己紹介

吉海 将太

大学院卒業後にUnity(C#)、Webアプリ(Python, Docker)、Pepperアプリ(Python)の開発に携わる

好きな言葉は「フィジカルが強い」 飼っている亀の名前は、ガメラと亀吉です。

Software Engineer

Kabuku, Inc.

https://www.kabuku.co.jp/

Page 3: Pythonを始めよう

カブクについて

What we doデジタル製造技術をコアテクノロジーとした、ハードウェアとソフトウェアとデザインを融

合したプロダクト・サービス開発を行っています。法人や個人、工場のお客様向けに3Dプリント技術のソリューション提供、デジタルクリエイターが世界で活躍するにあたっての

サポート、産官学連携による先端技術研究等に携わっています。

Page 4: Pythonを始めよう

主なプロダクト

● Rinkak

rinkakは3Dプリントプロダクトの マーケットプレイス

● MMS

3Dプリント製造に必要な機能をクラウドで一元管理できるシステム

Page 5: Pythonを始めよう

Rinkak マーケットプレイス

Page 6: Pythonを始めよう

今回の流れ

● Pythonについて

● Pythonで開発しよう

● Pythonを学ぼう

● 最近のTopic

Page 7: Pythonを始めよう

Pythonについて

Page 8: Pythonを始めよう

Pythonの特徴

● 読みやすい文法

● 直感的なオブジェクト指向

● 手続き型のコードによる、自然な表現

● パッケージの階層化もサポートした、完全なモジュール化サポート

● 例外ベースのエラーハンドリング

● 高レベルな動的データ型

● 拡張とモジュールはC/C++で書くのが容易

● 事実上すべてのタスクをこなせる、広範囲に及ぶ標準ライブラリとサードパーティの

モジュール

● 今最も熱い言語

Page 9: Pythonを始めよう

とてもクリーンで読みやすい文法

Page 10: Pythonを始めよう

Pythonの気になるところ

● 動作速度が遅い

● タブで区切る文法が独特

● 日本語の情報が若干すくない(最近はそうでもない)

Page 11: Pythonを始めよう

Pythonの歴史

名前の由来は、イギリスのテレビ局 BBC が製作したコメディ番組『空飛ぶモンティ・パイ

ソン』

● 1991年 Python 0.90● 2010年7月 Python2.7● 2017年1月 Python3.6

Page 12: Pythonを始めよう

他言語との比較

Page 13: Pythonを始めよう

他言語との比較

Page 14: Pythonを始めよう

他言語との比較

Page 15: Pythonを始めよう
Page 16: Pythonを始めよう

Pythonで開発を始めよう

Page 17: Pythonを始めよう

Python3とPython2今から始めるならPython3がオススメ

Python2は2020年に終了予定!!(結構先^^;)

Python3.6が最新 (Release Date: January 23, 2017)

ただ、一部ライブラリーが2.7系でないと動かないので注意が必要

3と2のコードはだいたい一緒だが、完全互換ではないので後から移行するのは大変

Page 18: Pythonを始めよう

コーディング規約 PEP8Pythonのコードは基本的にpep8に準拠して書きます。

pep8をチェックするツールが提供されておりCIツールでチェックすることが可能です。

下記のような規約があります。

● 1レベルインデントするごとに、スペースを4つ使いましょう。

● すべての行の長さを、最大79文字までに制限しましょう(弊社ではignore)● クラスの名前には通常 CapWords 方式を使うべきです

Page 19: Pythonを始めよう

Python開発環境の構築

ANACONDAがオススメ

主要ライブラリをオールインワンでインストール出来て、すぐに開発に取りかかれます

https://www.continuum.io/downloads

Page 20: Pythonを始めよう

Jupyter Notebookブラウザから使えるインタラクティブシェル

補完、グラフの表示が出来ます。

ちょっとしたことを試すのに便利です。

Page 21: Pythonを始めよう

オススメのIDE

Page 22: Pythonを始めよう

Pycharmの機能

● コード補完

● pep8準拠の警告表示

● Docker連携

● デバッガー、リモートデバッカー

● DjangoやAppEngineのRun● Unittest(カバレッジをPythonファイルの行の色で表示)

● 豊富なplugin(Vim)

Page 23: Pythonを始めよう

ライブラリー

Web系

● Django (フルスタックのフレームワーク)● Flask (マイクロフレームワーク)● requests(Httpのクライアントライブラリー

DeepLearning

● TensorFlow● Caffe● Chainer (日本製!)

Page 24: Pythonを始めよう

ライブラリー

ユニットテスト系

● Nosetest● Pytest (テストのレポートがかなり詳細に表示されて便利)

Page 25: Pythonを始めよう

CIツールとの連携

Jenkins

● PEP8のチェック

● Nosetest

Page 26: Pythonを始めよう

Pythonを学ぼう

Page 27: Pythonを始めよう

オススメの書籍

初心者向け

みんなのPython (表紙がファンシーでかわいい)

中級者向け

Effective Python (必読)

効率的で優れたプログラムはどのように書けばよいのか、を指南。

ベストプラクティス、ヒント、落とし穴の避け方や達人プログラマのコードなどを紹介し、効

果的な優れたPythonプログラムを書くノウハウをまとめています。

Page 28: Pythonを始めよう

Python Japan http://www.python.jp/

● 和訳ドキュメント

● ニュース

● イベント

● 求人情報

● コミュニティ

最近、Slackのチャンネルが出来ました

http://www.python.jp/news/pythonjp_slack.html

Page 29: Pythonを始めよう

カンファレンス

PyCon JPPyCon JPは、Pythonユーザが集まり、PythonやPythonを使ったソフトウェアについて

情報交換、交流をするためのカンファレンスです。

Page 30: Pythonを始めよう

実際に手を動かす (最強)WebアプリでもDeepLearningでも何でもあるPythonなら楽しく学習出来ます!

あとは、コードレビューしてくれる人がいると尚良いです。

Page 31: Pythonを始めよう

最近のTopic

Page 32: Pythonを始めよう

最近、今流行りのTypeHintsが使えるように!

TypeHintsあり

def greeting(name: str) -> str: return 'Hello ' + name

TypeHinstなし

def greeting(name): return 'Hello ' + name

Page 33: Pythonを始めよう

カブクではエンジニアを募集してます!

● サーバーサイドエンジニア

○ Python, Google Cloud Platform● フロントエンドエンジニア

○ TypeScriptやAngular

https://www.kabuku.co.jp/#jobs

Page 34: Pythonを始めよう