Python文法詳解を詳解する会 #4 まとめ

2015年5月20日(水)に開催された「Python文法詳解を詳解する会 - 第4回」に関するまとめです。 http://python-in-depth.connpass.com/event/14614/ 講師は「Python文法詳解」の著者@atsuoishimotoさんです。 誰でも編集可能にしていますので、追加したい、デコりたいなどございましたらお願いします。 続きを読む
プログラミング
0
AKANE Daigo (赤根 大吾) @dgakane
ステートメントはあさっり、関数とかモジュールとかをじっくりいくそうです #pygrambook
Kouhei Maeda @mkouhei
なるほど、whileやforのelse ループ抜けた時のフラグなんかに使えるのか。 #pygrambook
AKANE Daigo (赤根 大吾) @dgakane
while文にelse節をつけることができる #pygrambook
Kenjiro Kosaka @inoshiro
car, *cdr = [1, 2, 3] みたいな書き方知らなかった。Python3から導入されたとのこと。headとtailって言うんだっけ? #pygrambook
AKANE Daigo (赤根 大吾) @dgakane
単純に決まった回数のループを繰り返したい時は組み込み関数のrange()を使用する for in in range(10): print(i) #pygrambook
AKANE Daigo (赤根 大吾) @dgakane
rangeオブジェクトはイテレータを作成するイテラブルオブジェクトだけど、イテレータではない #pygrambook
Kenjiro Kosaka @inoshiro
range() で返されるのはイテラブルオブジェクト、それをiter()に渡すとrange_iteratorが返ってくる。これがイテレータオブジェクトか #pygrambook
Kenjiro Kosaka @inoshiro
__next__()が実装されていればイテレータ? #pygrambook
AKANE Daigo (赤根 大吾) @dgakane
try-except節のelse節は、例外が発生しなかった場合に通る(「exceptで指定した例外」以外で通るわけではない) #pygrambook
Tomohiro NAKAMURA @tomoh1r
#pygrambook 「Python 3 から try-except でエラーを束縛した変数 as ex とかが、 except 節抜けると消える。 Python 2 までは残っていた。 3系の途中から入った。」楽しい。これははまる。
Kouhei Maeda @mkouhei
Python3だと e=100 try: (snip) except Exception as e: print(e) # OK print(e) # ブロック抜けると削除される(e=100も) #pygrambook これは気をつけないと。。。
Tomohiro NAKAMURA @tomoh1r
#pygrambook 「try-except-finally の finally 節で continue 使えない」そうなの。
Tomohiro NAKAMURA @tomoh1r
#pygrambook 「いまのところの CPython ではそうなっている。他の処理系ではし変わるかも」
AKANE Daigo (赤根 大吾) @dgakane
finally節ではcontinueは書けない(仕様上の定義は見当たらず、Pythonの実装において?) #pygrambook
Kenjiro Kosaka @inoshiro
finally節でcontinue書けないけど、これは言語仕様では定義されてないとのこと #pygrambook
Kenjiro Kosaka @inoshiro
BaseExceptionから直接派生してる例外はアプリでは無視するべきでない。KeyboardInterupt無視されると困る #pygrambook
AKANE Daigo (赤根 大吾) @dgakane
型を指定しないexceptはKeyboardinterruptであるCtrl-Cなんかも捕まえてしまう。Exceptionかその派生形を指定するのが作法 #pygrambook
AKANE Daigo (赤根 大吾) @dgakane
例外の処理中に例外が発生した場合、python2では例外が後に発生したもので上書きされていた。python3では両方表示する。 #pygrambook
AKANE Daigo (赤根 大吾) @dgakane
with文でよしなにできるオブジェクト=コンテキストマネージャ #pygrambook
Kouhei Maeda @mkouhei
def foo(): try: raise ValueError('foo') except Exception as e: 1 / 0 foo() SidのPython3(3.4.3+)では連結されない #pygrambook
Kouhei Maeda @mkouhei
先ほどの例外の連結がされない件、pastebinに貼りました。 pastebin.com/17YbRcEs #pygrambook
Kouhei Maeda @mkouhei
コピペしてインデントがおかしいのでも一回 pastebin.com/MVfPbXGB #pygrambook
残りを読む(7)

コメント

コメントがまだありません。感想を最初に伝えてみませんか?

ログインして広告を非表示にする
ログインして広告を非表示にする