質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

3回答

1054閲覧

listから持ってきたデータがprintで表示される理由

Surface-Yuki

総合スコア34

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2017/02/17 03:51

環境
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("あなたの運命は"+大吉+"です。")

という表示になります。

[質問点]この場合、大吉が" "で囲まれていなくても表示されるのはなぜですか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

質問文に「この場合、list[0]の部分は 大吉 となります。 」とありますが、厳密には大吉ではなく"大吉"となるからです。

listから取り出すときに文字列で定義された大吉("大吉")をそのまま取り出して、printでは文字列同士の結合となるのでエラーにはなりませんよね。

試しにlist=[1,2,3,4]など中身を数字に変えて行ってみて下さい。print時に型が違う(文字列+整数)のでエラーになるはずです。

投稿2017/02/18 21:55

Ajitama

総合スコア17

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

質問の意図に合っているか分かりませんが…

list[0]には"大吉"として入る、と考えた方がいいと思います。
そう考えれば

print(list[0])

print("大吉")

となるので
結果:大吉

という表示になると思います。

投稿2017/02/17 04:16

x_kai

総合スコア58

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

""で囲うと、str型のオブジェクトが作られます。
例えば、
s = "あなたの運命は"
とすると、 変数s にstr型で文字列が保存されます。

他の例だと、以下の場合は、中身が空のlistオブジェクトが作られます。
li = []

int型は、以下のように数字となります。
i = 10

今回のケースで、は、
number=random.randint(1,4)
によって、変数numberに、int型の数字が入ります。(1, 2, 3, 4 のいずれか)

list=["大吉","中吉","凶","大凶"]
によって、変数listに、str型の4つのオブジェクトを入れたものが出来上がっています。

"あなたの運命は"+list[0]+"です。"
というのは、str型 と、list型から取り出したstr型 と、str型を繋げている処理で、
list[0]というのは、処理を行っているので、""で囲ってはいけません。

投稿2017/02/22 09:24

terapyon

総合スコア313

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問