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

INPUT · スライド

文字列の中をさがす

01 / 07

入っているかを調べる

番号で取り出すには、どこにあるかを知らないといけない。まずは「そもそも入っているか」から調べよう。

使うのは in。リストのときと同じ言葉だね。結果は True か False で返ってくるよ。

bun = "きょうはあめ"print("あめ" in bun)print("ゆき" in bun)

実行結果

True
False

02 / 07

if と組み合わせる

True か False が返るということは、そのまま if の条件に書けるということ。

「含まれていたら〜する」という判断が、これで書けるようになるよ。

bun = "きょうはあめ"if "あめ" in bun:    print("かさをもっていく")

実行結果

かさをもっていく

03 / 07

何番目にあるかを調べる

場所まで知りたいときは find(ファインド、見つける)を使う。見つかった位置の番号が返ってくるよ。

書き方は bun.find("あめ")。調べたい文字列のうしろに . をつけて呼ぶ。リストの append と同じ形だね。

bun = "きょうはあめ"print(bun.find("あめ"))

実行結果

4

04 / 07

見つからないと -1

find は見つからなくてもエラーにならない。かわりに -1 を返すよ。

番号は本来0以上なので、ありえない値を返すことで「無かった」を伝えているんだ。

0 が返ってきたら「先頭にあった」、-1 なら「無かった」。この2つを取りちがえないように気をつけよう。

bun = "きょうはあめ"print(bun.find("ゆき"))print(bun.find("きょう"))

実行結果

-1
0

05 / 07

何個あるかを数える

count(カウント、数える)を使うと、その文字が何回出てくるかが分かる。

1個も無ければ 0 が返る。こちらは -1 にならないよ。

bun = "あかあおあか"print(bun.count("あ"))print(bun.count("み"))

実行結果

3
0

06 / 07

先頭と末尾だけを見る

「〜で始まるか」「〜で終わるか」を調べる専用の道具もある。

  • startswith … その文字列で始まるか
  • endswith … その文字列で終わるか

どちらも True か False を返す。スライスで切り出して比べてもいいけれど、こちらのほうが読んで意味が分かるよ。

bun = "きょうはあめ"print(bun.startswith("きょう"))print(bun.endswith("はれ"))

実行結果

True
False

07 / 07

さがしてから切り出す

find で見つけた番号は、そのままスライスに使える。さがす道具と切り出す道具はセットなんだ。

下の例は「: の次から最後まで」を取り出している。区切り記号の場所が分からなくても切り出せるね。

次のレッスンでは、文字列を加工する道具を見るよ。

bun = "なまえ:ゆい"i = bun.find(":")print(bun[i + 1:])

実行結果

ゆい