Python3 初心者向け問題集005:for文

Python問題集

問005.

答えと解説は下にあります。
問題番号をクリックすると、答えに飛びます。

(1)
1以上50以下の整数を小さい順に、1行ずつ改行して出力してください。

#期待する出力例
1
2
3
…
50

(2)
51以上99以下の整数を小さい順に、半角スペース区切りで出力してください。

#期待する出力例
51 52 53 ... 99

(3)
下のようなリスト student があります。このリスト内の要素を半角コンマ区切りで全て出力してください。

student = ["Sato","Suzuki","Takahashi","Tanaka","Ito","Watabe","Yamamoto","Nakamura","Kobayashi","Kato",]
#期待する出力例
Sato,Suzuki, ... ,Kato

(4)
(3)のリスト student 内の要素を「0 Sato」のように「インデックス値+名前」の形で、1行ずつ改行して全て出力してください。インデックス値と名前の間には半角スペースを入れてください。

#期待する出力例
0 Sato
1 Suzuki
...
9 Kato

(5)
下の辞書 number_student の値(value)を1行ずつ改行して全て出力してください。

number_student = {5:"Yoshida",4:"Yamada",6:"Sasaki",1:"Yamaguchi",2:"Matsumoto",3:"Inoue"}
#期待する出力例
5
4
6
1
2
3

(6)
(5)の辞書 number_student について「○○の番号は□です」という形式で、1行ずつ改行して全て出力してください。

#期待する出力例
Yoshidaの番号は5です
Yamadaの番号は4です
……
Inoueの番号は3です

(7)
下の辞書 age_member のキーは「各メンバーの名前」を、値は「年齢」を表しています。この全メンバーの平均年齢を出力してください。

age_member = {"Kimura":19,"Hayashi":23,"Saito":26,"Shimizu":20,"Yamazaki":21,"Mori":25,"Ikeda":22,"Hashimoto":29,"Abe":19,"Ishikawa":20}
#期待する出力例
22.4

(8)
0以上100以下の整数を小さい順に、1行ずつ改行して出力してください。ただし、24.1×1.3の値よりも大きいものは出力しないでください。

#期待する出力例
0
1
2
…
31

(9)
下のリスト age には、年齢の情報が格納されています。
20以上なら「あなたは○○歳です」、19以下なら「あなたは○○歳です」と表示したあと改行して「購入できません」と出力してください。

age = [23,28,18,16]
#期待する出力例
あなたは23歳です
あなたは28歳です
あなたは18歳です
購入できません
あなたは16歳です
購入できません

答えと解説は下にあります。
問題番号をクリックすると、答えに飛びます。

答005.

(1)の答え

1以上50以下の整数を小さい順に、1行ずつ改行して出力してください。

#解答例
for i in range(1,51):
    print(i)

#別解
for i in range(50):
    print(i + 1)

for 変数 in オブジェクト:

例えば、

for i in ["a","b","c"]:
    print(i)

というコードを書いたとします。

このコードでは、

[“a”,”b”,”c”]から1つの要素”a”を取り出す

”a”を変数 i に代入する

i の値を出力する

[“a”,”b”,”c”]から1つの要素”b”を取り出す

……

といった感じに処理が進められていきます。

注意!

① 1行目のコロン「:」を忘れない!
② インデントを忘れない!

range( 開始数,終了数 )

を使えば、(開始数)以上(終了数)未満の整数を生成することができます。

開始数が0のときは、省略できます。

(2)の答え

51以上99以下の整数を小さい順に、半角スペース区切りで出力してください。

#解答例
for i in range(51,100):
    print(i, end=" ")

end=” 最後に埋め込みたい文字列 “

これはprint関数のオプション引数で、文字列の末尾に文字列を追加できます。

改行したくない場合は end=””
空白で区切りたい場合は end=” “
カンマで区切りたい場合は end=”,”

などとすればいいです。

(3)の答え

リスト student があります。このリスト内の要素を半角区切りで全て出力してください。

#解答例
student = ["Sato","Suzuki","Takahashi","Tanaka","Ito","Watabe","Yamamoto","Nakamura","Kobayashi","Kato",]
for i in student:
    print(i, end=" ")
(4)の答え

(3)のリスト student 内の要素を「0 Sato」のように「インデックス値+名前」の形で、1行ずつ改行して全て出力してください。インデックス値と名前の間には半角スペースを入れてください。

#解答例
student = ["Sato","Suzuki","Takahashi","Tanaka","Ito","Watabe","Yamamoto","Nakamura","Kobayashi","Kato",]
for i,j in enumerate(student):
	print(i,j)

#別解1
student = ["Sato","Suzuki","Takahashi","Tanaka","Ito","Watabe","Yamamoto","Nakamura","Kobayashi","Kato",]
for i in student:
	print(student.index(i),i)

#indexメソッドで取得してもよい。

#別解2
student = ["Sato","Suzuki","Takahashi","Tanaka","Ito","Watabe","Yamamoto","Nakamura","Kobayashi","Kato",]
for i in range(len(student)):
	list_item = student[i]
	print(i,list_item)

#len関数を用いて、それをインデックス値の代わりとしてもできる。

enumerate( )

カッコ内に入れたリストのindex値とvalueを取り出せます。

(5)の答え

辞書 number_student の値(value)を1行ずつ改行して全て出力してください。

#解答例
number_student = {5:"Yoshida",4:"Yamada",6:"Sasaki",1:"Yamaguchi",2:"Matsumoto",3:"Inoue"}
for i in number_student.values():
	print(i)

#number_student.values()は、number_studentのvalueを全て取り出してリスト化したもの。
(6)の答え

(5)の辞書 number_student について「○○の番号は□です」という形式で、1行ずつ改行して全て出力してください。

#解答例
number_student = {5:"Yoshida",4:"Yamada",6:"Sasaki",1:"Yamaguchi",2:"Matsumoto",3:"Inoue"}
for i,j in number_student.items():
    print(j + "の番号は" + str(i) + "です")

辞書名.items()

辞書の各要素のkeyとvalueを取り出せます。

(7)の答え

辞書 age_member のキーは「各メンバーの名前」を、値は「年齢」を表しています。この全メンバーの平均年齢を出力してください。

#解答例
age_member = {"Kimura":19,"Hayashi":23,"Saito":26,"Shimizu":20,"Yamazaki":21,"Mori":25,"Ikeda":22,"Hashimoto":29,"Abe":19,"Ishikawa":20}
sum_age = 0

for i in age_member.values():
	sum_age += i

average = sum_age / len(age_member)
print(average)
(8)の答え

0以上100以下の整数を小さい順に、1行ずつ改行して出力してください。ただし、24.1×1.3の値よりも大きいものは出力しないでください。

#解答例
for i in range(100):
	if i <= 24.1 * 1.3:
		print(i)
	else:
		break

#別解(while文を用いて)
i = 0
while i <= 24.1 * 1.3:
	print(i)
	i += 1

break

これを使うと、for文のくり返し処理を途中で打ち切ります。

(9)の答え

リスト age には、年齢の情報が格納されています。
20以上なら「あなたは○○歳です」、19以下なら「あなたは○○歳です」と表示したあと改行して「購入できません」と出力してください。

#解答例
age = [23,28,18,16]
for i in age:
	print("あなたは"+str(i)+"歳です")
	if i <= 19:
		print("購入できません")

#別解
age = [23,28,18,16]
for i in age:
	print("あなたは"+str(i)+"歳です")
	if i >= 20:
		continue
	print("購入できません")

continue

これを使うと、continue以降の処理は無視して、次の繰り返し処理に移ります。

※万が一、問題・解答・解説に不備がありましたら、
お問い合わせまたはTwitterで報告してください。

記事への意見・感想はコチラ