以前Pythonの基本的なことをまとめたとき、例外については参考URLのリンクを貼り付けただけだったので、この機会にまとめてみた。 (2014/11/12)リンク先を修正し、サンプルコードの内容もPython 3対応のものを追加し、本文の記述も一部書き直している。 例外について 種類 基本的な形 特定の例外に対して処理を行う場合 任意の例外に対して処理を行う場合 後始末の処理を含めた例外処理 例外について何かの操作を行うとき、何らかの原因によってそれが「うまくいかない」可能性を持っている場合がある。言語/環境によっては、そのときに行っていた処理を途中でやめて、失敗したことを環境側に知らせる仕組みがある。このとき、発生した「ある種の異常」(と定義されているもの)を例外といい、例外が起こったときにはそのままではプログラムは発生した例外の情報を出力しつつ終了してしまうが、例外が起こる可能性がある
Pythonで整数や、整数が入っている変数を割り算(除算)すると、小数点以下が切り捨てになる。 >>> 12/26 0 このような感じ。 これを解決する場合、2つの簡単な方法がある。 float定義をする。 割られる方または割る方にfloatと指定しておく。 >>> float(12)/26 0.46153846153846156 となり小数点以下も切り下げにならずに済む。 1.0をかけておく。 割られる方または割る方に1.0をかけておく。 主旨はfloat定義と同じだけど、あらかじめ1.0をかけておくことによって、 これは小数点以下の割り算の可能性があると指定しておく。 >>> 12*1.0/26 0.46153846153846156 小技だけど、結構重宝するので備忘録。 みんなのPython 作者: 柴田淳出版社/メーカー: ソフトバンククリエイティブ発売日: 2006/08/22メ
pythonのpropertyについて頭を整理しようと思ったのでまとめてみる。 agenda propertyって何? 困ったこと(propertyって読み込み専用の属性を定義するための機能なの?) propertyの使い方 propertyの利用例 getterを定義する場合 setterを定義する場合 deleterを定義する場合 まとめ と書く予定だったけれど、途中で力尽きてしまった。利用例をまったく書いていない。でも、propertyとは何かということについて分かれば、利用例なんてすぐに思いつけると思う。 propertyって何? pythonで自分で定義したオブジェクトに、独自のアクセサを持った属性を追加できる機能のこと。 アクセサというのは、オブジェクトの状態に触るために用意された機能のこと。 具体的には、状態の取得、状態の設定(更新)、状態の削除の機能を持つものを指すことが多
Python勉強し始めて一ヶ月くらいたったんで一度復習を兼ねてまとめてみようと思います。僕が今までPHPとかPerlとかJavaScriptを使っていて、Pythonはこうやるのかーとか、これは便利だなーと思ったところ、開発していてはまったところなどピックアップしてみました。 初めてのPythonを読んで初心者向け勉強会に参加した程度の知識です。とりあえず初めてのPythonがかなりいいのでこれ読むだけで大体基礎は習得できた気がします。基本的な文法の説明だけでなく、大事なことは何回も繰り返し書いてあったり、Pythonの思想などにも触れているのでなぜこういう実装になっているかということも理解できます。これオススメ。 尚、このエントリーではPythonのバージョンは2.5をベースにしてます(主にGoogleAppEngineで使ってるので)。間違えなどあったらツッコミお待ちしてます。 文法、
こんにちは、chihiroです。今回はPythonのテンプレートエンジンを紹介したいと思います。 Pythonを使い始めた頃、PHPのSmartyや、JavaのVelocity/FreeMarkerに相当するテンプレートエンジンとして、Pythonにはどんなものがあるのか、どれを使えばよいのかよく分からなかった経験があるので、これからPythonを始める方の参考になれば幸いです。 テンプレートエンジンを使う目的の一つに、Webサイト構築・運営の容易化ということがあると思いますが、今回はテンプレートエンジンの性格をざっと紹介したいと思いますので、HTMLの出力ではなく、次のような単純なテキストの出力を例にとって話を進めていきます。 * Hello unoh!! ** Unoh services - photozou - eiga seikatu - video pop - sugu.cc C
流行りのJITコンパイラは嫌いですか?¶ PyPy Advent Calendar 12/23担当の RYO @ 修論提出1ヶ月前です。 いよいよ明日はクリスマスイブですね。 リア充の方もそうでない方も、当記事に目を留めて頂き誠にありがとうございます。 本記事では、他の皆さんが扱われているような実用的なネタとは異なる PyPyの内側の話、特にPyPyのJITコンパイラに関する話題を扱いたいと思います。 したがって、本記事の情報は業務等の役にはまったく立ちませんのでご容赦願います。 さて、この記事をお読みになっている方々の殆どは、 PyPy = JITのおかげで早くなった事で有名なPythonの処理系 という認識をお持ちだと思います。 確かにこの認識は間違ってはいないのですが、 実はPythonにJITを乗せる事で高速化を図る処理系はPyPyだけではなく、 その殆どがPyPyが今程の有名なも
演算子が呼ばれると、対応する__XXX__といった前後にアンダースコアがつけられた関数が呼ばれる。また、そういったメソッドを他の通常のメソッドと区別して「フックメソッド」と呼ばれる。 __getitem__ __getitem__はインデクシングの処理に対応する「フックメソッド」。 対象クラスに定義されているか、対象クラスの継承ツリーに定義されていないとコールされない。 以下、__getitem__の例 >>> class C1: ... def __getitem__(self, index): ... return index * 100 ... >>> a = C1() >>> a[0] 0 >>> a[1] 100 >>> a[2] 200 >>> a[3] 300 >>> この__getitem__メソッドはループにも対応可。 >>> for b in a: ... if b >
Pythonでプログラムを書いていると、よく関数の中で関数を作ることがあります。 Python はクロージャに対応していて、関数の中で作られた関数は、外側の関数のローカル変数を参照することができます。 クロージャが一番役に立つ場面がデコレータです。次の例では、引数を取るデコレータを作るために関数内関数を2段階作成し、それぞれのローカル変数を一番内側から参照しています(このプログラムは、Python 2.6とPython 3.0の両方で動きます)。 リスト1 # coding: utf-8 from __future__ import print_function import sys def log(out=sys.stderr): def decorator(func): name = func.__name__ def decorated(*args, **kwargs): ###
ちょっと古いけど。 デブサミ会場で、雑談していると「PythonはDISらないんですか」と柴田さんから。なんか自虐的じゃない? とは言うものの、Pythonは基本的に良い言語で、 不満な点はかなり微妙だ。一般人にはどーでもいいような点だと思う。 一応リストを。 式と文の区別が明確。 インデントベースだとeRubyのようなテンプレートが難しい ブロックを含む式を持てない。Haskellみたいにブレースを使えば式にできるといいのに reduceがなくなる generator難しい。yieldを書くと戻り値が変化するってのはどうよ list comprehensionが難しい。英語人には人気みたいだけど Matz日記:PythonをDisる。 「Python は基本的によい言語」には同意。Rubyist でも、使ってもないのに Python を DIS る人がいるのは残念。インデントベースが嫌い
みんなのIoT/みんなのPythonの著者。二子玉近く160平米の庭付き一戸建てに嫁/息子/娘/わんこと暮らしてます。月間1000万PV/150万UUのWebサービス運営中。 免責事項 プライバシーポリシー Pythonの生みの親Guidoパパのブログエントリを翻訳してみました。「Why explicit self has to stay - なぜPythonのメソッド引数に明示的にselfと書くのか」。Pythonのメソッド引数に書く「self」はしばしば,他言語からのPython移民を中心に「ウザイ」「キモイ」「消えてなくなれ」と攻撃の対象となることが多いのです。GuidoパパはPythonが生まれて10年,もう何度も似たようなことを聞かされ,そのたびに明快な反論を行ってきました。言語の設計者には,技術的な素養はもちろんのこと,情熱と根気,そして我慢強さが必要なんだなあとつくづく思い知
あなたがもしPythonを作る前のGuidoに憑依して - ネットリサーチ - livedoor ニュース が面白すぎた。2位と3位の すべてを式にする lambdaの構文を変える は、同じ願いを別の言い方でしてるような気がした。lambdaにifとforを入れたいをかなえるには、ifとforを式にするか、lambdaに文が入るようにするか、どちらか一方だし。 それはさておき、このエントリの本題は、「Pythonにはselfが要る」というGuidoさんの主張について、具体例で理解することです。「こうだったらいいのにな」逆の視点、もしselfがないとどう困るのか、を考えましょう。 そこで、Pythonとは別の母親から産まれた双子、JavaScriptを例に、thisについて考えてみます。Pythonに対して、JavaScriptは「メソッド定義の第一引数に余分なアレがないこと」が特徴でしたね
追記: t2yさんが翻訳してくださいました。 argparseコマンドラインオプションと引数の解析 python 2.7からコマンドラインの引数を解釈するargparseモジュールが標準で入りました。 従来使われてきたoptparseは廃止されます。ただし、広く使われているところから他の廃止されるモジュールとは異なり消されることはなく、警告も標準では出ません。 optparseからargparseに移行する理由や廃止の進め方はPEP 389に記載されています。 以下にPEP 389の和訳を(訳に自信がない場所がありますが)行ないましたので参考にしてください。 http://www.tdoc.info/PEP-ja/389.html というわけで、ざっとargparseの使い方を勉強したのでここに公開します。間違ってたらご指摘ください。 なお、ちゃんとしたドキュメントは http://doc
The PyObjC project aims to provide a bridge between the Python and Objective-C programming languages. The bridge is intended to be fully bidirectional, allowing the Python programmer to take full advantage of the power provided by various Objective-C based toolkits and the Objective-C programmer transparent access to Python based functionality. The most important usage of this is writing Cocoa GUI
Download Current version: 2.18.0 Changelog Get Pygments from the Python Package Index, or install it with: pip install Pygments Questions? Suggestions? Clone at GitHub. You can also open an issue at the tracker. A project Welcome!¶ This is the home of Pygments. It is a generic syntax highlighter suitable for use in code hosting, forums, wikis or other applications that need to prettify source code
渋日記@shibu.jp 渋川よしきの日記です。ソフトウェア開発とか、ライフハックを中心に記事を書いていきます。 LL Tigerでライトニングトークスに参加してきました。今回はトーナメントの勝ち抜き方式で、今までのLTで見た中で技術的にハイレベルなプレゼンが数多く行われました。我らが"殺伐Python"は、残念ながら2回戦敗退でしたが、その負けた勝負も「言語実装者vs言語実装をだます人」という、刺激的すぎる対戦でした。柴田さんも、良い試合だったと言ってくれました。@moriyoshi, @ymotongpoo、お疲れ様でした!ちなみに写真は昼休み。「shibuya.jsやべぇよ、飲んで勢いでやろうぜ」的なw(清水川さん、写真ありがとうございます) イベントとしては、並列の話がおもしろいなぁ・・と思いました。上から下まで、コードジェネレータ、DSL、トランスレート・・・さまざまな技術がない
LLTigerで #encoding:ruby と書くだけで、Python上でRubyが動く、Ruby on Pythonが発表されました。 そして、よく分かりませんが、encodingのハックがゆくゆくはモテることにつながるらしいので、何か作ってみよう! でも、Rubyはかなり大変そう。一番簡単なのは・・・・・・brainf*ckだ! というわけで、 #bfcodec.py from __future__ import unicode_literals """ This code is under PSF License. Thanks Shibukawa Yoshiki! http://shibu.jp/ """ import encodings, codecs, sys, re import bf class aStreamReader(codecs.StreamReader): d
A fast, compliant alternative implementation of Python Download PyPy What is PyPy ? Documentation (external link) On average, PyPy is 4.8 times faster than CPython 3.7. We currently support python 3.10, 3.9, and 2.7. PyPy (with JIT) benchmark times normalized to CPython. Smaller is better. Based on the geometric average of all benchmarks "... we are avid fans of PyPy and commensurately thankful fo
This domain may be for sale!
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く