Pythonを眺めてみる
yassu
2015/07/25 (Sat)
yassu Python を眺めてみる 2015/07/25 (Sat) 1 / 21
お前だれよ
名前: yassu[0320]
職業: 某大学院数学科 M2 (専攻: 特異点論)
Python 歴: 3 年くらい
Vim 使い
yassu Python を眺めてみる 2015/07/25 (Sat) 2 / 21
PyCon mini @ sapporo
yassu Python を眺めてみる 2015/07/25 (Sat) 3 / 21
Agenda
Python とは?
Python の利点と欠点
Python のライブラリ
Python が使われているプロジェクト
PEPS
Python の禅
yassu Python を眺めてみる 2015/07/25 (Sat) 4 / 21
Pythonとは?
凡庸プログラミング言語
ドイツ人の Guido van Rossum によって作られた
モンティ・パイソンというアニメから言語名は命名された
ヘビのアイコンが目印
Ruby のお兄さん的存在
yassu Python を眺めてみる 2015/07/25 (Sat) 5 / 21
Pythonの利点と欠点
コードのリーダビリティが高くなるように言語が設計されて
いると主張されている
型付けが弱い
(C に比べると) 遅い
Python の標準的なコーディング規約なる Pep8 もの存在する.
“出来るだけ同じコードとして書けるなら、同じように書いた
方がいい”
yassu Python を眺めてみる 2015/07/25 (Sat) 6 / 21
Pythonの利点と欠点 (2)
カプセル化の概念がない
インターフェースの概念が後付け (duck typing, “それがアヒ
ルのように歩き、アヒルのように鳴くのなら、それはアヒル
である”)
python 2.x から 3.x への移行で少々の変更が加えられた
yassu Python を眺めてみる 2015/07/25 (Sat) 7 / 21
コードを眺めてみる
初めての Python プログラム (dive into python3)
yassu Python を眺めてみる 2015/07/25 (Sat) 8 / 21
Pythonのライブラリ
numpy: 数値計算モジュール
matploblib: グラフ作成ライブラリ
sympy: 科学計算, 数値計算ライブラリ (pure python)
pandas: データ解析のライブラリ
scipy: 科学計算・数値計算ライブラリ
Django: Web フレームワーク
Blender: 3D, アニメーション, ゲーム制作環境
PILLOW: 画像処理ライブラリ
yassu Python を眺めてみる 2015/07/25 (Sat) 9 / 21
Pythonが使われているプロジェクト
reStructuredText (RST): グラフィカルな markdown みたいなの
Sphinx (およびそのプラグイン): 構造的でもっとすごい rst み
たいなの
SCons: Python で書ける Makefile 的なもの
Trac
Sage: 数式処理システム. python のライブラリでもある.
Impressive
blockdiag (およびそのプラグイン): シンプルなテキストから
ブロック図を生成する ブロック図生成ツール
vint: vim の lint
yassu Python を眺めてみる 2015/07/25 (Sat) 10 / 21
What is PEPS ?
以後 Ref: “パーフェクト Python”
Python の設計のプロセスを可視化していき, 実装の前に皆の
意見を得ることを目的とする
yassu Python を眺めてみる 2015/07/25 (Sat) 11 / 21
重要なところ
PEP 0 (Indenx of Python Enhancement Proposals): PEP の目次
PEP 1 (PEP Purpose and Guidelines): PEP についてのガイド
ライン
PEP 5 (Guidelines for Language Evolution): 後方互換精を崩す
際の決め事
PEP 8 (Style Guide for Python Code): 標準のコーディング規約
yassu Python を眺めてみる 2015/07/25 (Sat) 12 / 21
Pythonの禅
>>> import this
yassu Python を眺めてみる 2015/07/25 (Sat) 13 / 21
Beautigul is better than ugly. (醜悪より美しいほ
うが良い)
コードを “美しく” 保つ “ことは, 少々開発が遅くなることよ
り大事.
yassu Python を眺めてみる 2015/07/25 (Sat) 14 / 21
Explicit is better than implicit. (暗黙より明示す
るほうが良い)
例えば
>>> from re import *
よりも
>>> from re import search, compile
Python では暗黙的な変数の使用も許されない.
ただし, ipython での_のように, 例外もある.
yassu Python を眺めてみる 2015/07/25 (Sat) 15 / 21
Flat is better than nested . (ネストしたものより
フラットなほうが良い)
例えばモジュール名は xxx.yyy.zzz ではなく xxx_yyy_zzz などと
する.
if A:
if B:
xxx
elif C:
yyy
よりも
if A and B:
xxx
elif A and C:
yyy
yassu Python を眺めてみる 2015/07/25 (Sat) 16 / 21
In the face of ambiguity, refuse the temptation to
guess. (曖昧なモノに出くわしたら推測しては
いけない)
1 + ”0” は 1 ではない.
yassu Python を眺めてみる 2015/07/25 (Sat) 17 / 21
There should be one- and preferably only one
-obvious way to do it. (1つのことをするのに, い
ろいろなやり方は好ましくない)
いろいろな人がみんな知らない特殊なプログラムの書き方を
している状況を想像してみよう
yassu Python を眺めてみる 2015/07/25 (Sat) 18 / 21
if the implementation is easy to explain, it’s good
idea. (実装の説明が簡単? そのアイデアは良い
のでしょう)
程よくシンプルに書けているというのはいいこと.
yassu Python を眺めてみる 2015/07/25 (Sat) 19 / 21
Namespaces are one honking gread idea - let’s do
more of thosse ! (ネームスペースはすごく良い
アイデアの1つ. もっと考えよう)
ネームスペースによって値のコンフリクト (衝突) のミスが少ない
プログラムが書けるようになるだろう.
yassu Python を眺めてみる 2015/07/25 (Sat) 20 / 21
ありがとうございました.
yassu Python を眺めてみる 2015/07/25 (Sat) 21 / 21

Python overview

  • 1.
    Pythonを眺めてみる yassu 2015/07/25 (Sat) yassu Pythonを眺めてみる 2015/07/25 (Sat) 1 / 21
  • 2.
    お前だれよ 名前: yassu[0320] 職業: 某大学院数学科M2 (専攻: 特異点論) Python 歴: 3 年くらい Vim 使い yassu Python を眺めてみる 2015/07/25 (Sat) 2 / 21
  • 3.
    PyCon mini @sapporo yassu Python を眺めてみる 2015/07/25 (Sat) 3 / 21
  • 4.
    Agenda Python とは? Python の利点と欠点 Pythonのライブラリ Python が使われているプロジェクト PEPS Python の禅 yassu Python を眺めてみる 2015/07/25 (Sat) 4 / 21
  • 5.
    Pythonとは? 凡庸プログラミング言語 ドイツ人の Guido vanRossum によって作られた モンティ・パイソンというアニメから言語名は命名された ヘビのアイコンが目印 Ruby のお兄さん的存在 yassu Python を眺めてみる 2015/07/25 (Sat) 5 / 21
  • 6.
    Pythonの利点と欠点 コードのリーダビリティが高くなるように言語が設計されて いると主張されている 型付けが弱い (C に比べると) 遅い Pythonの標準的なコーディング規約なる Pep8 もの存在する. “出来るだけ同じコードとして書けるなら、同じように書いた 方がいい” yassu Python を眺めてみる 2015/07/25 (Sat) 6 / 21
  • 7.
    Pythonの利点と欠点 (2) カプセル化の概念がない インターフェースの概念が後付け (ducktyping, “それがアヒ ルのように歩き、アヒルのように鳴くのなら、それはアヒル である”) python 2.x から 3.x への移行で少々の変更が加えられた yassu Python を眺めてみる 2015/07/25 (Sat) 7 / 21
  • 8.
    コードを眺めてみる 初めての Python プログラム(dive into python3) yassu Python を眺めてみる 2015/07/25 (Sat) 8 / 21
  • 9.
    Pythonのライブラリ numpy: 数値計算モジュール matploblib: グラフ作成ライブラリ sympy:科学計算, 数値計算ライブラリ (pure python) pandas: データ解析のライブラリ scipy: 科学計算・数値計算ライブラリ Django: Web フレームワーク Blender: 3D, アニメーション, ゲーム制作環境 PILLOW: 画像処理ライブラリ yassu Python を眺めてみる 2015/07/25 (Sat) 9 / 21
  • 10.
    Pythonが使われているプロジェクト reStructuredText (RST): グラフィカルなmarkdown みたいなの Sphinx (およびそのプラグイン): 構造的でもっとすごい rst み たいなの SCons: Python で書ける Makefile 的なもの Trac Sage: 数式処理システム. python のライブラリでもある. Impressive blockdiag (およびそのプラグイン): シンプルなテキストから ブロック図を生成する ブロック図生成ツール vint: vim の lint yassu Python を眺めてみる 2015/07/25 (Sat) 10 / 21
  • 11.
    What is PEPS? 以後 Ref: “パーフェクト Python” Python の設計のプロセスを可視化していき, 実装の前に皆の 意見を得ることを目的とする yassu Python を眺めてみる 2015/07/25 (Sat) 11 / 21
  • 12.
    重要なところ PEP 0 (Indenxof Python Enhancement Proposals): PEP の目次 PEP 1 (PEP Purpose and Guidelines): PEP についてのガイド ライン PEP 5 (Guidelines for Language Evolution): 後方互換精を崩す 際の決め事 PEP 8 (Style Guide for Python Code): 標準のコーディング規約 yassu Python を眺めてみる 2015/07/25 (Sat) 12 / 21
  • 13.
    Pythonの禅 >>> import this yassuPython を眺めてみる 2015/07/25 (Sat) 13 / 21
  • 14.
    Beautigul is betterthan ugly. (醜悪より美しいほ うが良い) コードを “美しく” 保つ “ことは, 少々開発が遅くなることよ り大事. yassu Python を眺めてみる 2015/07/25 (Sat) 14 / 21
  • 15.
    Explicit is betterthan implicit. (暗黙より明示す るほうが良い) 例えば >>> from re import * よりも >>> from re import search, compile Python では暗黙的な変数の使用も許されない. ただし, ipython での_のように, 例外もある. yassu Python を眺めてみる 2015/07/25 (Sat) 15 / 21
  • 16.
    Flat is betterthan nested . (ネストしたものより フラットなほうが良い) 例えばモジュール名は xxx.yyy.zzz ではなく xxx_yyy_zzz などと する. if A: if B: xxx elif C: yyy よりも if A and B: xxx elif A and C: yyy yassu Python を眺めてみる 2015/07/25 (Sat) 16 / 21
  • 17.
    In the faceof ambiguity, refuse the temptation to guess. (曖昧なモノに出くわしたら推測しては いけない) 1 + ”0” は 1 ではない. yassu Python を眺めてみる 2015/07/25 (Sat) 17 / 21
  • 18.
    There should beone- and preferably only one -obvious way to do it. (1つのことをするのに, い ろいろなやり方は好ましくない) いろいろな人がみんな知らない特殊なプログラムの書き方を している状況を想像してみよう yassu Python を眺めてみる 2015/07/25 (Sat) 18 / 21
  • 19.
    if the implementationis easy to explain, it’s good idea. (実装の説明が簡単? そのアイデアは良い のでしょう) 程よくシンプルに書けているというのはいいこと. yassu Python を眺めてみる 2015/07/25 (Sat) 19 / 21
  • 20.
    Namespaces are onehonking gread idea - let’s do more of thosse ! (ネームスペースはすごく良い アイデアの1つ. もっと考えよう) ネームスペースによって値のコンフリクト (衝突) のミスが少ない プログラムが書けるようになるだろう. yassu Python を眺めてみる 2015/07/25 (Sat) 20 / 21
  • 21.