Python文法詳解を詳解する会 #4 まとめ
Python文法詳解を詳解する会 - 第4回 / 始まります python-in-depth.connpass.com/event/14614/ #pygrambook pic.twitter.com/7i2jLKEGFR
2015-05-20 19:01:05car, *cdr = [1, 2, 3] みたいな書き方知らなかった。Python3から導入されたとのこと。headとtailって言うんだっけ? #pygrambook
2015-05-20 19:16:39単純に決まった回数のループを繰り返したい時は組み込み関数のrange()を使用する for in in range(10): print(i) #pygrambook
2015-05-20 19:17:30rangeオブジェクトはイテレータを作成するイテラブルオブジェクトだけど、イテレータではない #pygrambook
2015-05-20 19:20:16range() で返されるのはイテラブルオブジェクト、それをiter()に渡すとrange_iteratorが返ってくる。これがイテレータオブジェクトか #pygrambook
2015-05-20 19:21:47try-except節のelse節は、例外が発生しなかった場合に通る(「exceptで指定した例外」以外で通るわけではない) #pygrambook
2015-05-20 19:27:49#pygrambook 「Python 3 から try-except でエラーを束縛した変数 as ex とかが、 except 節抜けると消える。 Python 2 までは残っていた。 3系の途中から入った。」楽しい。これははまる。
2015-05-20 19:31:08Python3だと e=100 try: (snip) except Exception as e: print(e) # OK print(e) # ブロック抜けると削除される(e=100も) #pygrambook これは気をつけないと。。。
2015-05-20 19:32:48#pygrambook 「try-except-finally の finally 節で continue 使えない」そうなの。
2015-05-20 19:33:36#pygrambook 「いまのところの CPython ではそうなっている。他の処理系ではし変わるかも」
2015-05-20 19:35:21finally節ではcontinueは書けない(仕様上の定義は見当たらず、Pythonの実装において?) #pygrambook
2015-05-20 19:36:13finally節でcontinue書けないけど、これは言語仕様では定義されてないとのこと #pygrambook
2015-05-20 19:36:48BaseExceptionから直接派生してる例外はアプリでは無視するべきでない。KeyboardInterupt無視されると困る #pygrambook
2015-05-20 19:39:24型を指定しないexceptはKeyboardinterruptであるCtrl-Cなんかも捕まえてしまう。Exceptionかその派生形を指定するのが作法 #pygrambook
2015-05-20 19:41:00例外の処理中に例外が発生した場合、python2では例外が後に発生したもので上書きされていた。python3では両方表示する。 #pygrambook
2015-05-20 19:45:08def foo(): try: raise ValueError('foo') except Exception as e: 1 / 0 foo() SidのPython3(3.4.3+)では連結されない #pygrambook
2015-05-20 19:57:06先ほどの例外の連結がされない件、pastebinに貼りました。 pastebin.com/17YbRcEs #pygrambook
2015-05-20 19:59:22