くり返しとデータの持ち方

INPUT · スライド

文字を番号で取り出す

01 / 07

文字列も番号で取り出せる

リストは kudamonos[0] で中身を1つ取り出せた。

実は文字列もまったく同じ書き方ができる。namae[0] と書くと、1文字目が取り出せるんだ。

namae = "さくらい"print(namae[0])

実行結果

さ

02 / 07

番号は0から数える

リストと同じで、番号は0から始まる。1文字目が 0、2文字目が 1 だよ。

文字さくらい
番号0123

「1文字目なのに0」は最初は必ず戸惑うところ。リストで一度通った道だから、ここでは同じ考え方が使いまわせると思えばいい。

namae = "さくらい"print(namae[1])print(namae[3])

実行結果

く
い

03 / 07

マイナスで後ろから

リストで使えたマイナスの番号も、そのまま効く。[-1] が末尾、[-2] がその1つ前だよ。

文字数を数えなくても最後の文字が取れるので、これはとても便利。

namae = "さくらい"print(namae[-1])print(namae[-2])

実行結果

い
ら

04 / 07

長さも len で数えられる

リストの要素数を数えた len は、文字列に使うと文字数を返す。

日本語でも1文字は1文字として数えられるよ。ひらがなもカタカナも漢字も、len から見れば同じ「1つ」だ。

namae = "さくらい"print(len(namae))

実行結果

4

05 / 07

無い番号を指すとエラー

4文字の文字列に [4] は無い。番号は 0 から 3 までだからだ。

無い番号を指すと、Pythonはエラーで止めてくれる。

namae = "さくらい"print(namae[4])

実行結果

IndexError: string index out of range

06 / 07

取り出したものも文字列

namae[0] で取り出した1文字も、りっぱな文字列だ。だから + でつないだり * でくり返したりできる。

文字列から取り出したものは文字列。リストから取り出したものが元の要素だったのと同じ理屈だよ。

namae = "さくらい"print(namae[0] + namae[-1])

実行結果

さい

07 / 07

1文字ずつ並べてみる

range と len を組み合わせると、番号を0から順に作って1文字ずつ取り出せる。

くり返しと添字がつながった瞬間だね。次のレッスンでは、1文字ではなくまとめて何文字か取り出す方法を見るよ。

namae = "さくら"for i in range(len(namae)):    print(namae[i])

実行結果

さ
く
ら