pyladies tokyo 20150123

39
初心者のときに 知りたかったTips集 PyLadies Tokyo Meetup #3 @a_macbee

Upload: ai-makabi

Post on 16-Jul-2015

364 views

Category:

Engineering


0 download

TRANSCRIPT

Page 1: Pyladies tokyo 20150123

初心者のときに 知りたかったTips集

PyLadies Tokyo Meetup #3 @a_macbee

Page 2: Pyladies tokyo 20150123

@a_macbee is 誰

Page 3: Pyladies tokyo 20150123

@a_macbee !新卒データサイエンティスト        (もどき)  3度の飯より酒が好き ! PyLadies Tokyo代表  CROSS 2015でパネラーします  Python歴は4年とちょっと !

Page 4: Pyladies tokyo 20150123

Python for Beginners

Page 5: Pyladies tokyo 20150123

想定している初心者 !

・Python経験歴1年未満 ・プログラミング経験有(でもまだまだ初心者)

まさかりこわいよ

Page 6: Pyladies tokyo 20150123

初心者時代を思い出し 当時の自分が教わったら

喜ぶであろう話を考えてみた

 適宜デモとか  やります

Page 7: Pyladies tokyo 20150123

Pythonって 他言語とどう違う?

※Python言語の説明については私より先に話す人が 話終えていることを想定してます(; ・`ω・́)

Page 8: Pyladies tokyo 20150123

Pythonには 電池が付属する

Page 9: Pyladies tokyo 20150123

プログラマがすぐに使えるような ライブラリや統合開発環境が

ディストリビューションに含まれる

Page 10: Pyladies tokyo 20150123

抱負な標準ライブラリ: http://docs.python.jp/2.7/library/index.html

ステキだね憧れだね

OS固有のライブラリ Unix, Mac, Windows

インターネット urllib2, uuid

リッチなデータ型 datetime, collections

データの永続化 pickle, sqlite3

データ圧縮 gzip, bz2, tarfile

暗号化処理 hashlib, md5

スレッド・プロセス threading

multiprocessing

マークアップ HTTPParser

Page 11: Pyladies tokyo 20150123

個人的オススメ collections

!

超便利╭( ・ㅂ・)و ̑̑

Page 12: Pyladies tokyo 20150123

暗号化 (M2Crypto)外部関数のインタフェース (CTypes)地理情報 (geopy)データベース (SQLAlchemy)ゲーム開発 (PyGame)GUI (PyGtk, PyQt)イメージ処理 (PIL)ネットワーク (HTTPLib2)グラフ描画 (matplotlib)科学計算 (Numpy, Scipy)Web開発 (Django, Pyramid)

抱負なパッケージ import!!

https://wiki.python.org/moin/UsefulModules

Page 13: Pyladies tokyo 20150123

import this言語思想を知りたい方へ・・・

Page 14: Pyladies tokyo 20150123

The Zen of Python, by Tim PetersBeautiful is better than ugly.Explicit is better than implicit.Simple is better than complex.Complex is better than complicated.Flat is better than nested.Sparse is better than dense.Readability counts.Special cases aren't special enough to break the rules. Although practicality beats purity.Errors should never pass silently.Unless explicitly silenced.In the face of ambiguity, refuse the temptation to guess. There should be one-- and preferably only one --obvious way to do it. Although that way may not be obvious at first unless you're Dutch. Now is better than never.Although never is often better than *right* now.If the implementation is hard to explain, it's a bad idea. If the implementation is easy to explain, it may be a good idea. Namespaces are one honking great idea -- let's do more of those!

Page 15: Pyladies tokyo 20150123

>> print dir(this)[…, ‘__package__’, ‘c’, ‘d’, ‘i’, ’s’]

>> print this.s ?????

閑話休題: …多分みんなが知らない話をドヤ顔で話してみるよ

Page 16: Pyladies tokyo 20150123

何か良さそうだな :) よしPython使おう!

Page 17: Pyladies tokyo 20150123

Python初心者AさんとPythonプログラマーBさんの会話 !A:すいませんAさん,ちょっと質問があるのですが・・・ B:どうしたの? !A:このコードなんですけど・・・どうしても動かなくて.   サンプルコード参考に書いたんですけど><   あ,あとこのライブラリをどうしても入れることが出来なry B:・・・.Aさん,ちなみに使ってるPythonのバージョンは? A:Python 3.4.3です !B:あ,それじゃあどう頑張っても動かないよ   なんたって,Pythonの2系と3系には互換性がないからね   君が参考にしているコードもライブラリも2系を対象にした  ものだね

Page 18: Pyladies tokyo 20150123
Page 19: Pyladies tokyo 20150123

・・・え?

Page 20: Pyladies tokyo 20150123

_人人人人人人人人人人人人_ > 突然のバージョン問題 < ‾Y^Y^Y^Y^Y^Y^Y^Y^Y‾

Page 21: Pyladies tokyo 20150123

とりあえず最新をry…に注意

Pythonの2系と3系には互換性がない  → 3系で動かないコード一杯ある !

使いたいライブラリが3系に対応 しているのか確認しよう!  → 企業が提供しているライブラリ    2系対応のみが多いイメージ    ※あくまでもイメージ

Page 22: Pyladies tokyo 20150123

2と3はどう違う?→ Cheat Sheet: http://python-future.org/compatible_idioms.html

http://python3wos.appspot.com/

公式サポートなし oauth2

MySQL-python Fabric paramiko

※代替があるやつも多い

Page 23: Pyladies tokyo 20150123

両方使いたい場合は どうすれば良いの?

Page 24: Pyladies tokyo 20150123
Page 25: Pyladies tokyo 20150123

pyenvを使いましょう

Page 26: Pyladies tokyo 20150123

export PATH="$HOME/.pyenv/bin:$PATH" eval "$(pyenv init -)"

2. ~/.bash_profile

1. `pyenv` をそれぞれの環境にインストール

使い方を実演します(`・ω・´)ゞ

for Windows ・・・うまくいくのか検証できずorzfor Mac, Linux  http://cocodrips.hateblo.jp/entry/2014/09/02/171127

Page 27: Pyladies tokyo 20150123

Pythonのバージョン問題を解決 同じようにパッケージも管理したいな

Page 28: Pyladies tokyo 20150123

Python初心者AさんとPythonプログラマーBさんの会話 !A:すいませんAさん,ちょっと質問があるのですが・・・ B:どうしたの? !A:パッケージ管理ツール使ってライブラリ管理したいんですけど  Pythonでは何を使えば良いんですか? B:Pythonだとみんな pip を使うかな! A:そうなんですね,ありがとうございます.  ちなみに pip ってどうやって入れたら良いですか? B:$easy_install pip で入るはず !A:そうなんですね,ありがとうございます.  ちなみに easy_install ってなんでしょう? B:ん?パッケージ管理ツールだよ?

Page 29: Pyladies tokyo 20150123

引用:https://twitter.com/gardaud/status/357638468572151808

※元ネタです

Page 30: Pyladies tokyo 20150123
Page 31: Pyladies tokyo 20150123

原則 pip を利用するPython 2.7.9 から pip が標準で入ってくる!(Python3系であればpipが標準で入る)

easy_install は一旦忘れよう そして分からなくなったら聞こう

初心者で悩むと 一番つらいところな気がする

Page 32: Pyladies tokyo 20150123

Pythonの勉強に オススメの本とかある?

Page 33: Pyladies tokyo 20150123
Page 34: Pyladies tokyo 20150123

とりあえず最初は チュートリアル

Page 35: Pyladies tokyo 20150123

プログラミングも初めて・・・という方に

Pythonは教育用言語としても非常に優れています

Page 36: Pyladies tokyo 20150123

Python中級者になってきたかな?・・・という方に

よりPythonicなプログラミングや標準開発スタイル等の話

Page 37: Pyladies tokyo 20150123

なにこれ全然わからん・・・

バグを駆逐 できない

もうダメだ 心折れる・・・

何がわからんかも分からん

Page 38: Pyladies tokyo 20150123

一緒に 勉強しましょう

PyLadies Tokyo用のSlack等を 有効活用しちゃって下さい╭( ・ㅂ・)و ̑̑

Page 39: Pyladies tokyo 20150123

時間があまっていたら よくある嵌りどころ

みたいなやつを実演します