Nuco Advent Calendar 8日目の記事です。
盛り上げてくれへん?
今年のM-1グランプリは皆様ご覧になられましたでしょうか?
どのコンビのネタもすごくおもしろかったですね。
いやー個人的にはジャルジャルのネタすごい好きだったんですけどね。優勝ならずでした。
あのネタやってみたいんですけど僕は相方いないし1人でやるのもどうかな、と思ったので、
pythonにジャルジャル後藤役をやってもらうことにしました。
python2
実はpython2ってあんまり書いたことないんですよ。
っていうかほとんど書いたことないんですけど、今回できれば色んな方に是非盛り上がってもらおうと思って、色んなLinuxディストリビューションにプリインストールされてるpython2系を採用しました。
python2の文字列操作はめんどくさそうだったんですけど、実際めんどくさい。
python3は楽でいいですね。
ちょこちょこエラー吐かれるたびに3にすればよかったと後悔しました。
実行してみた
$ python jarujaru.py
今から変な校内放送やるから盛り上げてくれへん?
(Press Ctrl-C to exit.)
> ピンポンパン
一個少ないな
> ピンポンパンポンピン
一個多いな
> ぴん
背筋伸びてるやん
> ピン
背筋伸びてるやん
> ピン
背筋伸びてるやん
> ぴん
背筋伸びてるやん
> ぴん
背筋のびきってるやん
> ピンポンパンライス
いや、ファミレス行ってピンポン押して店員さん呼んでハンバーグ定食頼んだらパンorライスって聞かれてるやん
> ピンポン
誰か来ましたよ-
> ぽんぴん
来ましたよ-誰か
> やったら絶対できる子やねん
よしよしすな
> ほげ
変な校内放送やってや
入力は全角半角どちらでも大丈夫です。
ぴらがなでもOK。jaconvというパッケージでそのへんの処理をやってます。
def goto(boke):
s = boke.decode('utf-8')
if s == u'やったら絶対できる子やねん':
return u'よしよしすな'
s = jaconv.hira2kata(s)
ends_with_rice, s = rice(s)
noise = len(filter(lambda x: not x in [u'ピ', u'ン', u'ポ', u'パ', u'ー'], list(s)))
if noise:
return '変な校内放送やってや'
s = filter(lambda x: x in [u'ピ', u'ン', u'ポ', u'パ'], list(s))
s = jaconv.z2h(''.join(s))
return evaluate(s, ends_with_rice=ends_with_rice)
ただし、ピンポンパン(と伸ばし棒)以外の文字が入ってるとevaluateできずに変な校内放送やってやって怒られます。
校内放送しよう!
コードも急いで書いたのでちょっと雑ですが、python2系の文字列処理の煩わしさを体感することができました。
今後もあまり2系でコーディングすることはなさそうですが、python3が使えることに感謝しながらコーディングに励みたいと思います!
書くことなさすぎてこんなクソ記事書いたってのは秘密だよ!!!