質問: 環境 python3.6 windows10 listから持ってきたデータがprintで表示される理由を教えてください。 ``` import random number=random.randint(1,4) list=["大吉","中吉","凶","大凶"] if number==1: print("あなたの運命は"+list[0]+"です。") if number==2: print('あなたの運命は'+list[1]+"です。") if number==3: print('あなたの運命は'+list[2]+"です。") if number==4: print('あなたの運命は'+list[3]+"です。") ``` この場合、list[0]の部分は 大吉 となります。 (例) list=["大吉","中吉","凶","大凶"] print(list[0]) 結果: 大吉 (" "表記なし。) つまり、 print("あなたの運命は"+大吉+"です。") という表示になります。 [質問点]この場合、大吉が" "で囲まれていなくても表示されるのはなぜですか?
回答: 質問文に「この場合、list[0]の部分は 大吉 となります。 」とありますが、厳密には大吉ではなく"大吉"となるからです。 listから取り出すときに文字列で定義された大吉("大吉")をそのまま取り出して、printでは文字列同士の結合となるのでエラーにはなりませんよね。 試しにlist=[1,2,3,4]など中身を数字に変えて行ってみて下さい。print時に型が違う(文字列+整数)のでエラーになるはずです。