
この回でできるようになること
- 01文字列の位置を0から数え、1文字を取り出す
- 02スライスで範囲を取り出し、元の文字列との違いを知る
- 03f文字列と split() で読みやすい表示・入力を作る
最初の文字は0番
文字列には、左から0、1、2…という位置番号が付きます。番号を角かっこに入れると、その場所の文字を取り出せます。

ROBORON の最初の文字は R だから、1番かな?

そこが最初のひっかけなんだよ。Pythonの位置は0から始まる。ROBORON[0] が R、[1] が O になるよ。

最後の文字は -1 でも指定できるのですね。
name = "ROBORON"
print(name[0])
print(name[1])
print(name[-1])
なぜ? 先頭は0番。-1は後ろから1文字目を指します。存在しない位置を選ぶと IndexError になります。

文字列の長さは len(name) で調べられるよ。
必要な部分だけ切り出す
[始まり:終わり] で続いた文字を取り出します。終わりの位置の文字は含まれません。

name[0:4] って、0番から4番まで?

いいところに気づいたね。0番から『4番の手前まで』なんだよ。0、1、2、3番の4文字になるね。

元の文字列そのものは変わらず、新しい文字列が得られます。
name = "ROBORON"
print(name[0:4])
print(name[4:])
print(name[:3])
なぜ? [0:4] に含まれるのは0〜3番。終わりを省けば最後まで、始まりを省けば最初からです。

文字列は1文字だけを直接書き換えられません。変えたいときは新しい文字列を作ろう。
言葉を組み立てる
表示のページで学んだf文字列をもう一度使い、ここでは split() で区切った文字をリストにする方法も試します。
f文字列を初めて学ぶ場合は、先にprint()とf文字列のページで表示のしくみを確かめよう。

リンゴが3個なら『リンゴは3個』って表示したい!

いいね。f の後に引用符を書いて、値を入れる場所を { } で囲むんだよ。

入力をコンマで分けるなら、split(',') が使えますね。
count = 3
print(f"リンゴは{count}個")
words = "赤,青,黄".split(",")
print(words)
なぜ? f文字列は変数の値を文字の中に埋め込みます。split(',') はコンマを境に分けるので、コンマ自体は結果に残りません。

split() の結果はリスト。次の回で詳しく扱うよ。
予想して、理由まで確かめよう
答えを選んだら、説明を読んでから実行欄でも試してみよう。
name = "ROBORON" のとき name[1:4] は?
答えを選ぶと理由が表示されます。

小さな練習:名前の先頭と末尾を表示しよう
name = 'FUJIMOTO' の先頭と末尾を取り出し、f文字列で『F と O』と表示してみよう。
ヒント:name[0] と name[-1] を使います。
解き方の一例と理由を見る
name = "FUJIMOTO"
print(f"{name[0]} と {name[-1]}")位置0がF、後ろから1文字目がOです。
ロボットの名札を短くするには?

『ROBORON-01』から番号だけ取り出せるんだ!

そうなんだよ。名前の形が決まっていれば split('-') で分けられる。ただし区切りがない名前も来るなら、先に確認する設計が親切だね。

使う人が違う形で入力する場合も考えておくべきですね。
自分の手で動かそう
例題を選び、結果を予想してから「実行する」を押そう。値を変えると、どの行が結果を決めるか見えてくるよ。
書き換えて試せます。Tabキーは半角スペース4つ分です。
0番・最後・1〜3番の文字を予想してから実行しよう。
この入力欄の使い方
コード内の input() に渡す値を1行ずつ書きます。input() がない例では空欄で大丈夫です。複数回呼ぶコードでは上から順に使います。
準備できました。
実行結果
実行すると、ここに結果を表示します。
Pythonは閲覧中の端末内で動作します。

文字は、並び順にも意味がある。 今日覚えた道具を、別の値でも試してみよう。自分で理由を説明できたら、とてもいい進歩なんだよ。