「Python文法詳解を詳解する会 - 第6回」に参加した
先週の木曜、「Python文法詳解を詳解する会 - 第6回」に参加した。会の名前の通り、Python文法詳解を詳解していく会だった。内容はデコレータ、イテレータ、ジェネレータ、というかんじで、自分的には、以下の文法に発狂感を覚えた。
#!/usr/bin/env python3 # -*- coding: utf-8 -*- def spam(): sent_1 = yield u"1個めのyield" #....yieldが...代入...してる...! print(sent_1) sent_2 = yield u"2個めのyield" print(sent_2) yield u"3個めのyield" gen = spam() print(next(gen)) print(gen.send(u"1回目のsend")) print(gen.send(u"1回目のsend")) # output # 1個めのyield # 1回目のsend # 2個めのyield # 1回目のsend # 3個めのyield
...どうやらyieldは式なので、"yield xx"っていうそれ自体が値を持てるらしい。だからyield的には、
「next( )されたか...じゃあこっちはをxxを投げるぞ!受け取ってくれ〜」
「お、send("hoge")されてるじゃん...さて、"hoge"を左項に渡しとくか...」
という雰囲気という理解。ジェネレータと外界との値のやりとりに使えるようだ。(しかし、この機能を使ったプログラムを制御できる自信はないなあ。。。)
というわけでpythonのお勉強をできたわけだけれど、びっくりしたのが、講師の方が「Python文法詳解」の著者だったことで、東京ってすごいなと思った。帰りには著者+他の参加者と一緒にビールも飲めたし、東京のコスパやばい。人生力高まった気持ち。
- 作者: 石本敦夫
- 出版社/メーカー: オライリージャパン
- 発売日: 2014/09/18
- メディア: 大型本
- この商品を含むブログ (2件) を見る
位置原光Zの名言をつぶやくbot作った
はじめに
位置原光Zのマンガに出てくる名言をつぶやくbotを作った。
概要
すいません! おしっこするの手伝ってもらえませんか!!!
#位置原光bot
— 位置原光bot (@hikaruzbot) 2015, 6月 21
ちょっと!!? なに女の子のポケットにゴーヤつっこんでんですか!
#位置原光bot
— 位置原光bot (@hikaruzbot) 2015, 6月 21
たくさん泣いて…なくのに飽きたら…ナンパをしにいきましょう…
#位置原光bot
— 位置原光bot (@hikaruzbot) 2015, 6月 21
先輩〜〜〜〜! セックスを…セックスをください!
#位置原光bot
— 位置原光bot (@hikaruzbot) 2015, 6月 21
豚を侮った己れを恥じて死ぬがいい!
#位置原光Z
— 位置原光bot (@hikaruzbot) 2015, 6月 21
おまんまだよ! 見せてくれよおまんま!
#位置原光Z
— 位置原光bot (@hikaruzbot) 2015, 6月 21
このように、ふとした瞬間に位置原光の言葉をつぶやいてくれるため、とても癒やされる。
中身
python on heroku。tweepy使った。
おわりに
お気に入りの位置原先生の言葉があったら、リクエストください。つぶやかせます。
- 作者: 位置原光Z
- 出版社/メーカー: 白泉社
- 発売日: 2015/05/29
- メディア: コミック
- この商品を含むブログ (9件) を見る
- 作者: 位置原光Z
- 出版社/メーカー: 集英社
- 発売日: 2014/05/19
- メディア: コミック
- この商品を含むブログ (14件) を見る
小説執筆補助ツールBungoo作った
とりあえず動いたのでgithubに上げておく。詳細は後ほど書く気がする。
マルコフ連鎖で前の文に似通った文字列を出力することで、小説っぽい文字列を生成するツールを作った。
http://bungoo.herokuapp.com/Bungoo/
課題
現状、実行速度との兼ね合いで中島敦の「山月記」の文章しかリコメンドされない。リコメンドされたものをそのまま入力し続ければきっと山月記が完成するはず。
- 作者: 中島敦
- 出版社/メーカー: 新潮社
- 発売日: 2003/12
- メディア: 文庫
- 購入: 6人 クリック: 44回
- この商品を含むブログ (143件) を見る
プログラミングコンテストチャレンジブック買った
プログラミングコンテストチャレンジブック [第2版] ?問題解決のアルゴリズム活用力とコーディングテクニックを鍛える?
- 作者: 秋葉拓哉,岩田陽一,北川宜稔
- 出版社/メーカー: マイナビ
- 発売日: 2012/01/28
- メディア: Kindle版
- この商品を含むブログを見る
読み途中。各問題に対する解答例とC++のソースコードが載ってるので、暇なときにpythonに翻訳している。例えばしゃくとり法についてだと以下のようになる。
#!/usr/bin/python # -*- coding: utf-8 -*- import sys def main(): print(syakutori()) # 総和がS以上となる # 部分列の長さの最大値を求める def syakutori(): INF = sys.maxint n = 10 # 数列aの長さ S = 15 # 総和の最低値 a = (5,1,3,5,10,7,4,9,2,8) # 数列 s = 0 # 部分和の開始地点 t = 0 # 部分和の終了地点 sum_x = a[0] # 部分和の総和 res = INF # 最小区間 while(1): # tを伸ばしていく while(sum_x < S and t + 1 < n): t = t + 1 sum_x = sum_x + a[t] if sum_x < S: break res = min(res, t - s + 1) # sを伸ばしていく s = s + 1 sum_x = sum_x - a[s] return res if __name__=='__main__': main()
やってると無限に時間が潰せるのでコスパが良い。