ひのきのぼうだけで             全クリを目指す        kyoto.py Python勉強会 in 高槻@a rom a_bl ack (t ty170)
お前誰よ?名前 : aroma_black 最近tty170とかも使ってる所属 : 某SIerのSE兼PG 主に技術的課題解決要員Pythonはシェルスクリプト覚えるのが嫌で使い始めました
お断り今日はPython2.7のはなしですPython3.x? なにそれおいしいの?
装備品の紹介ひのきのぼう標準ライブラリhttp://www.python.jp/doc/release/library/
Pythonの標準ライブラリbatteries included(電池付属)という哲学で作られたhttp://www.python.org/dev/peps/pep-0206/すぐに使える強力(?)かつ多彩なライブラリ
Stage 1敵全体攻撃コレクションクラスを操作してみるプログラミングの基本
itertools  いっぱいあるのでドキュメントを参照    イテレータやジェネレータを返すので    リスト内包表記を組み合わせて使うと    少ない行数で書ける>>> from itertools import ifilter>>> fo...
Stage 2仲間を増やすシェルスクリプト的なものを作ってみる(その時にあると便利なもの)引数の解析って面倒臭いよね
argparse    コマンドラインオプションの解析器    optperseの後継import argparseparser = argparse.ArgumentParser(description=Process some intege...
argparse実行結果  $ prog.py -h  usage: prog.py [-h] [--sum] N [N ...]  Process some integers.  positional arguments:   N      ...
Stage 3てきをあやつるPythonからファイル操作を簡単に行う
shutilいっぱいあるのでドキュメント参照ファイル操作はos, os.pathモジュールもよく使います import os, shutil for root, dirs, files in os.walk(‘.’):     for file...
Stage 4強敵エクセルのおともだち、CSVCSVファイルの読み書き仕事でよく使うよね?
csvパッケージ読み込み   import csv       with open(some.csv, rb) as f:           reader = csv.reader(f)           for row in reader...
Stage 5酒場で情報収集Webスクレイピング
urllib2   HTMLソースを取得するコードを3行で頼む>>> import urllib2>>> f = urllib2.urlopen(http://www.python.org/)>>> print f.read(100)<!DOC...
Stage 6試練の時xUnit系のパッケージ付属ドキュメントにテスト可能なコードも書ける簡易的なdoctestというモジュールもある
unittestxUnit系のテスティングモジュール import random import unittest class TestSequenceFunctions(unittest.TestCase):     def setUp(sel...
unittestさっきのテストの実行結果 . ------------------------------------------------------- --------------- Ran 1 tests in 0.000s OK
doctest対話シェルのコードを貼付けるだけdocstringにも埋め込める    def add(n, m):        """Return n + m.        >>> add(1, 2)        3        """...
doctest異常が無ければ何も表示されない異常があったときはエラーが表示される *************************************************** File "add.py", line 6, in __m...
Stage Exエイリアンと戦う関数言語的な機能を使ってみる関数型言語使ってみたいけど敷居高そう...
functools関数の部分適用  >>> from functools import partial  >>> basetwo = partial(int, base=2)  >>> basetwo.__doc__ = Convert bas...
クリアできないとき....そんな時は先人達の知恵をかりましょう。
つよくてニューゲーム標準ライブラリだけでクリアすると言ったなあれは嘘だPyPIと呼ばれるパッケージ管理サイトhttp://pypi.python.org/pypiRubyのRubyGems, PerlのCPANに相当
パッケージ管理ツールpipパッケージを自動でインストールしてくれる優れものeasy_install は衰退しましたPython3対応
installing pip前準備としてdistributeをインストールhttp://python-distribute.org/distribute_setup.pypipをダウンロードhttp://pypi.python.org/pypi...
pipの基本的な使い方パッケージのインストール  pip install package_nameパッケージのアンインストール  pip uninstall package_nameパッケージの検索  pip search package_na...
virtualenv仮想的な実行環境を作る為のツールアプリケーション間で依存するパッケージののバージョンの分離とか
virtualenvの基本的な使い方PyPIにドキュメントがあるのでどうぞ!http://pypi.python.org/pypi/virtualenv
virtualenv wrappervirtualenvをシェルで使いやすくする為のツールhttp://pypi.python.org/pypi/virtualenvwrapper/Windowsな人はvirtualenv-winhttps:/...
virtualenv wrapperの(ryさっきのPyPIのサイトをどうぞ!
それでも倒せないレベルを上げて物理で殴ればいいたまには人に聞くなどもしてみては?
まとめPythonの標準ライブラリは強力 きんのひのきのぼう今日紹介したPython標準ライブラリは一部です スイスの十得ナイフと言われているらしい ドキュメント眺めると新たな発見がある かも?
ご清聴ありがとうございました
Upcoming SlideShare
Loading in...5
×

ひのきのぼうだけで全クリ目指す

1,512

Published on

主にPythonの標準ライブラリライブラリを紹介します。

0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,512
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
3
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • ひのきのぼうだけで全クリ目指す

    1. 1. ひのきのぼうだけで 全クリを目指す kyoto.py Python勉強会 in 高槻@a rom a_bl ack (t ty170)
    2. 2. お前誰よ?名前 : aroma_black 最近tty170とかも使ってる所属 : 某SIerのSE兼PG 主に技術的課題解決要員Pythonはシェルスクリプト覚えるのが嫌で使い始めました
    3. 3. お断り今日はPython2.7のはなしですPython3.x? なにそれおいしいの?
    4. 4. 装備品の紹介ひのきのぼう標準ライブラリhttp://www.python.jp/doc/release/library/
    5. 5. Pythonの標準ライブラリbatteries included(電池付属)という哲学で作られたhttp://www.python.org/dev/peps/pep-0206/すぐに使える強力(?)かつ多彩なライブラリ
    6. 6. Stage 1敵全体攻撃コレクションクラスを操作してみるプログラミングの基本
    7. 7. itertools いっぱいあるのでドキュメントを参照 イテレータやジェネレータを返すので リスト内包表記を組み合わせて使うと 少ない行数で書ける>>> from itertools import ifilter>>> foobar = [1, 2, foo, 4, bar]>>> [e for e in ifilter(lambda x: x.isdigit(), foobar)][1, 2, 4]
    8. 8. Stage 2仲間を増やすシェルスクリプト的なものを作ってみる(その時にあると便利なもの)引数の解析って面倒臭いよね
    9. 9. argparse コマンドラインオプションの解析器 optperseの後継import argparseparser = argparse.ArgumentParser(description=Process some integers.)parser.add_argument(integers, metavar=N, type=int, nargs=+, help=an integer for the accumulator)parser.add_argument(--sum, dest=accumulate, action=store_const, const=sum, default=max, help=sum the integers (default: find the max))args = parser.parse_args()print args.accumulate(args.integers)
    10. 10. argparse実行結果 $ prog.py -h usage: prog.py [-h] [--sum] N [N ...] Process some integers. positional arguments: N an integer for the accumulator optional arguments: -h, --help show this help message and exit --sum sum the integers (default: find the max)
    11. 11. Stage 3てきをあやつるPythonからファイル操作を簡単に行う
    12. 12. shutilいっぱいあるのでドキュメント参照ファイル操作はos, os.pathモジュールもよく使います import os, shutil for root, dirs, files in os.walk(‘.’): for filename in files: if filename.endswith(‘.py’): pyfile = os.path.join(root, filename) shutil.copyfile(pyfile, “./pyfiles”)
    13. 13. Stage 4強敵エクセルのおともだち、CSVCSVファイルの読み書き仕事でよく使うよね?
    14. 14. csvパッケージ読み込み import csv with open(some.csv, rb) as f: reader = csv.reader(f) for row in reader: print row書き込み import csv with open(some.csv, wb) as f: writer = csv.writer(f) writer.writerows(someiterable)すこし弄ればTSVとかも読めます
    15. 15. Stage 5酒場で情報収集Webスクレイピング
    16. 16. urllib2 HTMLソースを取得するコードを3行で頼む>>> import urllib2>>> f = urllib2.urlopen(http://www.python.org/)>>> print f.read(100)<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><?xml-stylesheet href="./css/ht2html
    17. 17. Stage 6試練の時xUnit系のパッケージ付属ドキュメントにテスト可能なコードも書ける簡易的なdoctestというモジュールもある
    18. 18. unittestxUnit系のテスティングモジュール import random import unittest class TestSequenceFunctions(unittest.TestCase): def setUp(self): self.seq = range(10) def test_sample(self): with self.assertRaises(ValueError): random.sample(self.seq, 20) for element in random.sample(self.seq, 5): self.assertTrue(element in self.seq) if __name__ == __main__: unittest.main()
    19. 19. unittestさっきのテストの実行結果 . ------------------------------------------------------- --------------- Ran 1 tests in 0.000s OK
    20. 20. doctest対話シェルのコードを貼付けるだけdocstringにも埋め込める def add(n, m): """Return n + m. >>> add(1, 2) 3 """ return n + m if __name__ == "__main__": import doctest doctest.testmod()
    21. 21. doctest異常が無ければ何も表示されない異常があったときはエラーが表示される *************************************************** File "add.py", line 6, in __main__.add Failed example: add(1, 2) Expected: 4 Got: 3 *************************************************** 1 items had failures: 1 of 1 in __main__.add ***Test Failed*** 1 failures.
    22. 22. Stage Exエイリアンと戦う関数言語的な機能を使ってみる関数型言語使ってみたいけど敷居高そう...
    23. 23. functools関数の部分適用 >>> from functools import partial >>> basetwo = partial(int, base=2) >>> basetwo.__doc__ = Convert base 2 string to an int. >>> basetwo(10010) 18応用すればカリー化とかもできる...はず
    24. 24. クリアできないとき....そんな時は先人達の知恵をかりましょう。
    25. 25. つよくてニューゲーム標準ライブラリだけでクリアすると言ったなあれは嘘だPyPIと呼ばれるパッケージ管理サイトhttp://pypi.python.org/pypiRubyのRubyGems, PerlのCPANに相当
    26. 26. パッケージ管理ツールpipパッケージを自動でインストールしてくれる優れものeasy_install は衰退しましたPython3対応
    27. 27. installing pip前準備としてdistributeをインストールhttp://python-distribute.org/distribute_setup.pypipをダウンロードhttp://pypi.python.org/pypi/pip/展開してディレクトリの中で$python setup.py install
    28. 28. pipの基本的な使い方パッケージのインストール pip install package_nameパッケージのアンインストール pip uninstall package_nameパッケージの検索 pip search package_namehttp://www.pip-installer.org/en/latest/index.html
    29. 29. virtualenv仮想的な実行環境を作る為のツールアプリケーション間で依存するパッケージののバージョンの分離とか
    30. 30. virtualenvの基本的な使い方PyPIにドキュメントがあるのでどうぞ!http://pypi.python.org/pypi/virtualenv
    31. 31. virtualenv wrappervirtualenvをシェルで使いやすくする為のツールhttp://pypi.python.org/pypi/virtualenvwrapper/Windowsな人はvirtualenv-winhttps://github.com/davidmarble/virtualenvwrapper-win/
    32. 32. virtualenv wrapperの(ryさっきのPyPIのサイトをどうぞ!
    33. 33. それでも倒せないレベルを上げて物理で殴ればいいたまには人に聞くなどもしてみては?
    34. 34. まとめPythonの標準ライブラリは強力 きんのひのきのぼう今日紹介したPython標準ライブラリは一部です スイスの十得ナイフと言われているらしい ドキュメント眺めると新たな発見がある かも?
    35. 35. ご清聴ありがとうございました
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×