Help us understand the problem. What is going on with this article?

湯婆婆は参照で落ちるから名前を書かない方がいい

More than 1 year has passed since last update.

千と千尋の神隠し

2019/08/16の金曜ロードショーでノーカットの『千と千尋の神隠し』が放送されました
いや〜よかった!
いつ見てもあれはいいですね!

「契約書だよ。そこに名前を書きな。働かせてやる。
その代わり嫌だとか、帰りたいとか言ったらすぐ子豚にしてやるからね。 

あの、名前ってここですか? 

そうだよもぅぐずぐずしないでさっさと書きな! 

まったく……つまらない誓いをたてちまったもんだよ。
働きたい者には仕事をやるだなんて…… 書いたかい? 

はい……あっ。 

フン。千尋というのかい? 

はい。 

贅沢な名だねぇ。 今からおまえの名前は千だ。
いいかい、千だよ。分かったら返事をするんだ、千!!」

というシーンを知っていますか?
Twitterを見つつ鑑賞していたら
https://twitter.com/SabanikiTofu/status/1162323952309424134?s=20スクリーンショット 2019-08-16 23.12.26.png
というツイートを目にしました
「これは面白い。たぶん湯婆婆は文字列の一文字目だけにしてるんだろう」と考えました

湯婆婆を作る

じゃあとりあえず湯婆婆を作ります

hot_water_old_lady.py
print("契約書だよ。そこに名前を書きな。働かせてやる。\nその代わり嫌だとか、帰りたいとか言ったらすぐ子豚にしてやるからね。\nそうだよもぅぐずぐずしないでさっさと書きな!\n\nまったく……つまらない誓いをたてちまったもんだよ。働きたい者には仕事をやるだなんて…… 書いたかい?")
name = input()
short_name = name[0]
print("はい…あっ。 \n\nフン。%sというのかい? \n\nはい。 \n\n贅沢な名だねぇ。 今からおまえの名前は%sだ。\nいいかい、%sだよ。分かったら返事をするんだ、%s!!"% (name, short_name, short_name, short_name))

はい終わり

$ python hot_water_old_lady.py
契約書だよ。そこに名前を書きな。働かせてやる。
その代わり嫌だとか、帰りたいとか言ったらすぐ子豚にしてやるからね。
そうだよもぅぐずぐずしないでさっさと書きな!

まったく……つまらない誓いをたてちまったもんだよ。働きたい者には仕事をやるだなんて…… 書いたかい?
千尋
はい…あっ。 

フン。千尋というのかい? 

はい。 

贅沢な名だねぇ。 今からおまえの名前は千だ。
いいかい、千だよ。分かったら返事をするんだ、千!!

はい、ちゃんと湯婆婆してますね
じゃあ名前を書かないでいきましょう

python hot_water_old_lady.py 
契約書だよ。そこに名前を書きな。働かせてやる。
その代わり嫌だとか、帰りたいとか言ったらすぐ子豚にしてやるからね。
そうだよもぅぐずぐずしないでさっさと書きな!

まったく……つまらない誓いをたてちまったもんだよ。働きたい者には仕事をやるだなんて…… 書いたかい?

Traceback (most recent call last):
  File "hot_water_old_lady.py", line 3, in <module>
    short_name = name[0]
IndexError: string index out of range

はい、湯婆婆が落ちましたね
文字列の""の0番目を参照したからですね

結論

湯婆婆は落ちる
cでやった人もいるらしいのでみなさんも湯婆婆作りましょう〜
https://twitter.com/cmpl_error/status/1162330445683412992?s=20

追記

2019/08/17 プログラム内のミスをご指摘いただき少し修正しました

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした