追加練習
本書の章末問題を終えた人向けの練習です。コードは標準ライブラリだけで書けます。まず出力を予想し、その後に python3 で実行して確かめましょう。
1. 文字列と変数
学習時間を分で表す minutes を42にします。f文字列を使い、「学習時間は42分です」と表示するコードを書きます。
2. 条件分岐
score が80以上なら「よくできました」、60以上80未満なら「もう少しです」、60未満なら「復習しましょう」と表示します。59、60、79、80を一つずつ試します。
3. 繰り返しとリスト
minutes_list = [20, 35, 25] を使い、合計時間を表示します。繰り返しの各回で total がどう変わるかも表に書きます。
4. 関数
分数のリストを受け取り、合計を返す sum_minutes 関数を書きます。[20, 35, 25] と空のリスト [] の両方で確かめます。
5. CSVの集計
下のCSVを study.csv として保存します。csv.DictReader を使って読込み、空欄でない分数の件数と合計を表示します。入力ファイルを変更しないでください。
name,minutes
Aki,20
Minh,35
Sara,
答えの確認
CSV練習の結果は、件数が2、合計が55です。空欄を数値の0として件数に加えない仕様です。別の名前・数値・空欄でも試し、結果を説明できるか確認します。
解答例と実際の出力
2026年10月20日、Python 3.14.5で実行しました。予想を書いてから答えを開きましょう。CSVは入力データを使えます。
1. 文字列と変数
minutes = 42
print(f"学習時間は{minutes}分です")実際の出力:
学習時間は42分です
2. 条件分岐
for score in [59, 60, 79, 80]:
if score >= 80:
message = "よくできました"
elif score >= 60:
message = "もう少しです"
else:
message = "復習しましょう"
print(score, message)実際の出力:
59 復習しましょう
60 もう少しです
79 もう少しです
80 よくできました
3. 繰り返しとリスト
minutes_list = [20, 35, 25]
total = 0
for minutes in minutes_list:
total += minutes
print(total)実際の出力:
20
55
80
4. 関数
def sum_minutes(minutes_list):
total = 0
for minutes in minutes_list:
total += minutes
return total
print(sum_minutes([20, 35, 25]))
print(sum_minutes([]))実際の出力:
80
0
5. CSVの集計
import csv
from pathlib import Path
with Path("study.csv").open(encoding="utf-8", newline="") as file:
rows = list(csv.DictReader(file))
count = 0
total = 0
for row in rows:
if row["minutes"] != "":
count += 1
total += int(row["minutes"])
print(f"件数は{count}件です")
print(f"合計は{total}分です")実際の出力:
件数は2件です
合計は55分です