初心者のときに 知りたかったTips集 PyLadies Tokyo Meetup #3 @a_macbee
初心者のときに 知りたかったTips集
PyLadies Tokyo Meetup #3 @a_macbee
@a_macbee is 誰
@a_macbee !新卒データサイエンティスト (もどき) 3度の飯より酒が好き ! PyLadies Tokyo代表 CROSS 2015でパネラーします Python歴は4年とちょっと !
Python for Beginners
想定している初心者 !
・Python経験歴1年未満 ・プログラミング経験有(でもまだまだ初心者)
まさかりこわいよ
初心者時代を思い出し 当時の自分が教わったら
喜ぶであろう話を考えてみた
適宜デモとか やります
Pythonって 他言語とどう違う?
※Python言語の説明については私より先に話す人が 話終えていることを想定してます(; ・`ω・́)
Pythonには 電池が付属する
プログラマがすぐに使えるような ライブラリや統合開発環境が
ディストリビューションに含まれる
抱負な標準ライブラリ: 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
個人的オススメ collections
!
超便利╭( ・ㅂ・)و ̑̑
暗号化 (M2Crypto)外部関数のインタフェース (CTypes)地理情報 (geopy)データベース (SQLAlchemy)ゲーム開発 (PyGame)GUI (PyGtk, PyQt)イメージ処理 (PIL)ネットワーク (HTTPLib2)グラフ描画 (matplotlib)科学計算 (Numpy, Scipy)Web開発 (Django, Pyramid)
抱負なパッケージ import!!
https://wiki.python.org/moin/UsefulModules
import this言語思想を知りたい方へ・・・
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!
>> print dir(this)[…, ‘__package__’, ‘c’, ‘d’, ‘i’, ’s’]
>> print this.s ?????
閑話休題: …多分みんなが知らない話をドヤ顔で話してみるよ
何か良さそうだな :) よしPython使おう!
Python初心者AさんとPythonプログラマーBさんの会話 !A:すいませんAさん,ちょっと質問があるのですが・・・ B:どうしたの? !A:このコードなんですけど・・・どうしても動かなくて. サンプルコード参考に書いたんですけど>< あ,あとこのライブラリをどうしても入れることが出来なry B:・・・.Aさん,ちなみに使ってるPythonのバージョンは? A:Python 3.4.3です !B:あ,それじゃあどう頑張っても動かないよ なんたって,Pythonの2系と3系には互換性がないからね 君が参考にしているコードもライブラリも2系を対象にした ものだね
・・・え?
_人人人人人人人人人人人人_ > 突然のバージョン問題 < ‾Y^Y^Y^Y^Y^Y^Y^Y^Y‾
とりあえず最新をry…に注意
Pythonの2系と3系には互換性がない → 3系で動かないコード一杯ある !
使いたいライブラリが3系に対応 しているのか確認しよう! → 企業が提供しているライブラリ 2系対応のみが多いイメージ ※あくまでもイメージ
2と3はどう違う?→ Cheat Sheet: http://python-future.org/compatible_idioms.html
http://python3wos.appspot.com/
公式サポートなし oauth2
MySQL-python Fabric paramiko
※代替があるやつも多い
両方使いたい場合は どうすれば良いの?
pyenvを使いましょう
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
Pythonのバージョン問題を解決 同じようにパッケージも管理したいな
Python初心者AさんとPythonプログラマーBさんの会話 !A:すいませんAさん,ちょっと質問があるのですが・・・ B:どうしたの? !A:パッケージ管理ツール使ってライブラリ管理したいんですけど Pythonでは何を使えば良いんですか? B:Pythonだとみんな pip を使うかな! A:そうなんですね,ありがとうございます. ちなみに pip ってどうやって入れたら良いですか? B:$easy_install pip で入るはず !A:そうなんですね,ありがとうございます. ちなみに easy_install ってなんでしょう? B:ん?パッケージ管理ツールだよ?
引用:https://twitter.com/gardaud/status/357638468572151808
※元ネタです
原則 pip を利用するPython 2.7.9 から pip が標準で入ってくる!(Python3系であればpipが標準で入る)
easy_install は一旦忘れよう そして分からなくなったら聞こう
初心者で悩むと 一番つらいところな気がする
Pythonの勉強に オススメの本とかある?
とりあえず最初は チュートリアル
プログラミングも初めて・・・という方に
Pythonは教育用言語としても非常に優れています
Python中級者になってきたかな?・・・という方に
よりPythonicなプログラミングや標準開発スタイル等の話
なにこれ全然わからん・・・
バグを駆逐 できない
もうダメだ 心折れる・・・
何がわからんかも分からん
一緒に 勉強しましょう
PyLadies Tokyo用のSlack等を 有効活用しちゃって下さい╭( ・ㅂ・)و ̑̑
時間があまっていたら よくある嵌りどころ
みたいなやつを実演します