mo_chi
@mo_chi

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

input()で入力した文字列の扱い

解決したいこと

input()で入力された文字列はどのような扱いとなるのでしょうか?
例えば

s = input()
#入力
sakura

とした場合、

print(s[1])

とすると、

a

と出力されたので疑問になりました。
インデックスを持つということは、リストのような扱いになっているのでしょうか?
str型のデータと覚えていたので混乱しています。
よろしくお願いします。

0

2Answer

str型の文字列は文字ごとの配列のようにインデックスにアクセスができます!そのためinputの返却値はstr型で合っていますが、インデックスで各文字にアクセスすることもできます!

>>> text: str = 'あいうえお'
>>> text[0]
''
>>> text[1]
''
>>> text[2]
''
>>>
0Like

公式Pythonチュートリアルもご覧ください。

余談ですが、インデックスアクセスしたときに呼ばれるメソッド名が決められていて、無茶苦茶無意味な実装にすることもできます。
https://docs.python.org/ja/3/reference/datamodel.html#object.__getitem__

>>> import random
>>> class Sample:
...     def __getitem__(self, index):
...         return random.randint(1, 6)
...
>>> s = Sample()
>>> s[0]
6
>>> s[None]
3
>>> s['Hello']
1
>>> s[True]
2
>>> s[1, 2, 3, 'ダー']
4
0Like

Your answer might help someone💌