- 以下の要件でプログラムを作ってください。
- ・10人分の名前のリストがあります。
- ・キーボードから、名前を入力します。
- ・リストの中に、キーボードから入力された名前と一致するものがあるか探索します。
- ・もし一致する名前があれば、「◯番目の「〇〇」と一致しました」と表示します。
- ・また一致する名前がなかったときには、「一致する名前はありませんでした」と表示します。
繰り返しを使って、リストの中の値を一つずつ取り出して、キーボードから入力された文字列と一致するかどうか調べるとできそうだね!
「◯番目と一致しました」と出力するためには、繰り返した回数を得る必要があるね!
それに、どれにも一致するものがなかったことを判断するには、どうしたらいいかも考えないといけないよね!
どんなプログラムにすればいいか、よ~く考えてね!
name_list = ["高田智子", "上原明", "藤本光子", "今井美羽", "高橋隆史",
"福田愛子", "菊池純", "松岡美樹", "中村拓志", "青木涼介"]
str = input()
📖 解答例と解説
name_list = ["高田智子", "上原明", "藤本光子", "今井美羽", "高橋隆史",
"福田愛子", "菊池純", "松岡美樹", "中村拓志", "青木涼介"]
str = input()
loop_num = 1
is_match = False
#リストの中の値を、入力された文字列と順番に比較する
for name in name_list:
if str == name:
print(loop_num, "番目の", name, "と一致しました")
is_match = True
loop_num += 1
#リストの中に、一致するものがなかったとき
if is_match == False:
print("一致する名前はありませんでした")
「リストのための繰り返し」を使うときには、繰り返した回数を数えるための変数が必要だよ!
それと、リストの中に一致するものがあったかなかったかを判断するための、フラグ変数も必要だよ!
- 以下の要件でプログラムを作ってください。
- ・前の問題と同じ、10人分の名前のリストがあります。
- ・キーボードから、名前の一部を入力します。
- ・まず、「【入力された文字列】を含む名前を探します」と表示します。
- ・リストの中に、キーボードから入力された文字列と一部が一致するものがあるか探索します。
- ・そして、一致するものあれば、そのときの名前を表示します。
- ・探索完了後に、「一部が一致したものが、◯件ありました」と表示します。
- ・また一致する名前がなかったときには、「該当するものはありませんでした」と表示します。
こんどはリストの中の名前の一部と、キーボードから入力された文字列が一致するかどうかを判断する必要があるよ!
これまで、文字列Aと文字列Bがまったく同じかどうかを判断するために、「==」を使っていたよね!
文字列Aが文字列Bに含まれているかどうかを判断するためには、「in」を使うといいんだ!
キーボードから入力した文字列が左の「A」のほうで、リストの中の文字列が右の「B」の方ということになるよ!
name_list = ["高田智子", "上原明", "藤本光子", "今井美羽", "高橋隆史",
"福田愛子", "菊池純", "松岡美樹", "中村拓志", "青木涼介"]
str = input()
📖 解答例と解説
name_list = ["高田智子", "上原明", "藤本光子", "今井美羽", "高橋隆史",
"福田愛子", "菊池純", "松岡美樹", "中村拓志", "青木涼介"]
str = input()
match_num = 0
print("【", str, "】を含む名前を探します")
for name in name_list:
if str in name:
print(name)
match_num += 1
if match_num > 0:
print("一部が一致したものが、", match_num, "件ありました")
else:
print("該当するものはありませんでした")
キーボードから入力するのは文字列だから、「int( )」は使わないよ!
名前の一部と一致したときの、数をカウントする変数が必要だよね!
「in」が使えるのは、文字列を比較するときだけだよ!
Pythonには、こんな便利なものがたくさんあるんだ!
他にもどんなのがあるか、自分で調べてみてね!