ここまでで以下の要素を学びました。
- 対話モードとスクリプトの実行方法
- 数値(整数・浮動小数点数)と代表的な演算子
- 変数の代入と名前の付け方
- 文字列の操作・
print/inputの使い方
これらを組み合わせるだけでも、立派なミニプログラムが作れます。手を動かして試行錯誤するほど理解が深まります。
チャレンジ 1: 温度変換 #
華氏 (Fahrenheit) を摂氏 (Celsius) に変換するプログラムを作りましょう。数式は C = (F - 32) * 5 / 9 です。
華氏を入力してください: 77
摂氏 25.0 度です
入力値は文字列として受け取るため、数値に変換してから計算する必要があります。小数点以下を丸めたい場合は
round()を使いましょう。
小数第1位を表示する例です。
fahrenheit_text = input("華氏を入力してください: ")
fahrenheit = float(fahrenheit_text)
celsius = (fahrenheit - 32) * 5 / 9
print(f"摂氏 {round(celsius, 1)} 度です")チャレンジ 2: 目覚まし時計 #
現在時刻(24 時間表記の「時」と「分」)と、何分後にアラームを鳴らしたいかを入力し、アラーム時刻を表示してください。
現在の時を入力してください (0-23): 21
現在の分を入力してください (0-59): 30
何分後に起きますか? 90
アラーム時刻は 23:00 です
24 時間を超える場合に備えて、合計分を
24 * 60で割った余りを使うと安全です。
剰余演算を使って 24 時間内に収めています。
hour = int(input("現在の時を入力してください (0-23): "))
minute = int(input("現在の分を入力してください (0-59): "))
after = int(input("何分後に起きますか? "))
total = hour * 60 + minute + after
total %= 24 * 60 # 24 時間で折り返す
alarm_hour = total // 60
alarm_minute = total % 60
print(f"アラーム時刻は {alarm_hour:02d}:{alarm_minute:02d} です")
チャレンジ 3: シンプルな家計簿(発展) #
1 週間の支出をまとめて合計と平均を表示しましょう。最初は変数だけで書き、余裕があればリストやループに書き換えてみてください。
月曜日の支出: 1200
火曜日の支出: 980
...
合計: xxxx 円
平均: xxxx 円
同じ処理を繰り返す箇所に気づいたら、次章で学ぶ
forやwhileに置き換えられないかを考えてみましょう。
変数だけで書く最小構成の例です。
mon = int(input("月曜日の支出: "))
tue = int(input("火曜日の支出: "))
wed = int(input("水曜日の支出: "))
thu = int(input("木曜日の支出: "))
fri = int(input("金曜日の支出: "))
sat = int(input("土曜日の支出: "))
sun = int(input("日曜日の支出: "))
total = mon + tue + wed + thu + fri + sat + sun
average = total / 7
print(f"合計: {total} 円")
print(f"平均: {average:.1f} 円")
リストを使うと、後でループ処理に書き換えやすくなります。
よくあるつまずき #
| つまずき | 原因と対処 |
|---|---|
NameError: name 'value' is not defined | 変数名を定義する前に使っている、またはスペルミスの可能性があります。処理の順番と名前を確認しましょう。 |
ValueError: invalid literal for int() | 文字列を int() に変換するときに数字以外の文字が含まれています。入力値をチェックするか、例外処理を追加します(例外処理は後の章で扱います)。 |
文字列の連結で TypeError | 数値と文字列を + で結合すると発生します。f-string や str() で文字列に変換しましょう。 |
これで「01 Python の基本文法」は完了です。次の章では「条件分岐と繰り返し」に進み、より動きのあるプログラムを作っていきます。休憩を挟みつつ、不安なところはもう一度手を動かして復習しましょう。