⌨️ ステップ10: 入力と型変換
ユーザーからの入力を受け取って、自由に使いこなそう!
今まで、プログラムの中で使う値は直接コードに書いていました。今回は、プログラムを実行している人(ユーザー)から値を入力してもらう方法を学びます。
📖 このステップで学ぶこと
・input()関数でユーザーから入力を受け取る方法
・なぜ型変換が必要なのか
・int()、float()、str()による型変換
・よくあるエラーと対処法
・実践的な入力処理のテクニック
📝 1. input()関数とは何か?
まず、なぜユーザー入力が必要なのか、input()関数とは何かを理解しましょう。
🔰 なぜユーザー入力が必要?
💡 ユーザー入力のイメージ
今まで作ってきたプログラムは、値が固定されていました。
例えば「年齢 = 20」と書いたら、常に20歳として計算されます。
でも実際のプログラムでは、使う人によって値が変わりますよね。
・ゲームで自分の名前を入力する
・計算機で計算したい数字を入力する
・アンケートで年齢や性別を入力する
このように「使う人に入力してもらう」機能がinput()関数です。
📝 input()関数の基本
input()関数は、ユーザーにキーボードで文字を入力してもらい、その値を受け取る関数です。
📌 input()関数の書き方
変数 = input("表示するメッセージ")
・カッコ内のメッセージが画面に表示される
・ユーザーが入力してEnterを押すと、入力された値が変数に保存される
📝 最もシンプルな例
コード:input()の基本
# input()でユーザーからの入力を受け取る
# カッコ内の文字列が「プロンプト」(入力を促すメッセージ)
name = input("あなたの名前を教えてください: ")
# 受け取った値を使って表示
print("こんにちは、" + name + "さん!")
実行結果
あなたの名前を教えてください: 太郎 こんにちは、太郎さん!
※「太郎」はユーザーが入力した部分です
💡 コードの解説
1. input("あなたの名前を教えてください: ")
→ 画面にメッセージが表示され、ユーザーの入力待ち状態になる
2. ユーザーがキーボードで「太郎」と入力してEnterキーを押す
3. 入力された「太郎」が変数nameに保存される
4. print()で変数を使って表示する
📝 プロンプトなしのinput()
メッセージを表示しないこともできますが、ユーザーは何を入力すればいいかわからなくなります。
コード:プロンプトなし(非推奨)
# プロンプトなし(カーソルが点滅するだけで何を入力すればいいかわからない)
value = input()
print(f"入力された値: {value}")
⚠️ 推奨
必ずプロンプト(メッセージ)を付けて、何を入力すべきかを明確に伝えましょう。
良い例:input("名前を入力してください: ")
悪い例:input()(何を入力すればいいかわからない)
⌨️ 2. input()の使い方
input()関数の様々な使い方を見ていきましょう。
📝 複数の入力を受け取る
input()を複数回使って、いくつもの情報を受け取ることができます。
コード:複数の入力を受け取る
# 3つの情報を順番に入力してもらう
name = input("名前: ")
age = input("年齢: ")
hobby = input("趣味: ")
# 区切り線を表示("=" を30回繰り返す)
print("=" * 30)
# f文字列で見やすく表示
print(f"{name}さんのプロフィール")
print(f"年齢: {age}歳")
print(f"趣味: {hobby}")
print("=" * 30)
実行結果
名前: 花子 年齢: 25 趣味: 読書 ============================== 花子さんのプロフィール 年齢: 25歳 趣味: 読書 ==============================
💡 コードの解説
・input("名前: ") → ユーザーが入力するまでプログラムは待機
・"=" * 30 → 文字列の繰り返し。”=”を30個並べる
・f"{name}さん" → f文字列で変数を埋め込む
📝 入力を使って簡単な処理をする
コード:入力した名前を加工する
# 名前を入力してもらう
name = input("あなたの名前は? ")
# 文字列の長さを調べる
length = len(name)
# 大文字に変換(英語の場合)
upper_name = name.upper()
print(f"あなたの名前は{length}文字です")
print(f"大文字にすると: {upper_name}")
実行結果
あなたの名前は? yamada あなたの名前は6文字です 大文字にすると: YAMADA
🔄 3. なぜ型変換が必要なのか?
ここが非常に重要なポイントです。input()には1つ大きな特徴があります。
⚠️ input()の重要な特徴
🔑 超重要!
input()で受け取った値は、必ず「文字列(str)」になります。
数字を入力しても、文字列として扱われます!
📝 問題を実際に見てみよう
コード:数字を入力して確認
# 年齢を入力してもらう
age = input("年齢を入力してください: ")
# 型を確認
print(f"入力された値: {age}")
print(f"型: {type(age)}")
実行結果
年齢を入力してください: 20 入力された値: 20 型: <class 'str'>
「20」と数字を入力したのに、型は「str」(文字列)になっています!
📝 文字列のまま計算しようとするとエラー
コード:エラーになる例
# 年齢を入力
age = input("年齢を入力してください: ")
# 1年後の年齢を計算しようとする
next_year = age + 1 # ← これはエラーになる!
❌ エラーメッセージ
TypeError: can only concatenate str (not "int") to str
「文字列と整数は足し算できません」というエラーです。
💡 なぜエラーになる?
・ageは文字列「”20″」
・1は整数
・文字列と整数は足し算できない
・「”20″ + 1」は「りんご + 1」と同じくらい意味不明な計算
📝 文字列同士の「+」は連結になる
文字列同士を「+」すると、足し算ではなく「連結」になります。
コード:文字列の連結
# 2つの数字を入力
num1 = input("1つ目の数字: ")
num2 = input("2つ目の数字: ")
# 文字列のまま「+」すると連結になる
result = num1 + num2
print(f"結果: {result}")
実行結果
1つ目の数字: 10 2つ目の数字: 20 結果: 1020
10 + 20 = 30 になってほしいのに、「1020」と連結されてしまいました!
📘 解決策:型変換(キャスト)
この問題を解決するために、文字列を数値に「型変換」します。
📌 型変換(キャスト)とは
データの型を別の型に変換することを「型変換」または「キャスト」と呼びます。
| 関数 | 変換先 | 例 |
| int() | 整数(int) | int(“20”) → 20 |
| float() | 小数(float) | float(“3.14”) → 3.14 |
| str() | 文字列(str) | str(100) → “100” |
🔢 4. int()で整数に変換
整数として計算したい時は、int()関数で変換します。
📝 int()の基本的な使い方
コード:int()で整数に変換
# 年齢を入力
age_str = input("年齢を入力してください: ")
# 文字列を整数に変換
age = int(age_str)
# 計算ができるようになる
next_year = age + 1
print(f"来年は{next_year}歳ですね!")
実行結果
年齢を入力してください: 20 来年は21歳ですね!
💡 コードの解説
1. age_str = input(...) → 文字列「”20″」を受け取る
2. age = int(age_str) → 文字列「”20″」を整数 20 に変換
3. age + 1 → 整数同士なので計算できる(20 + 1 = 21)
📝 入力と変換を1行でまとめる(よく使う書き方)
実際のプログラムでは、入力と変換を1行でまとめて書くことが多いです。
コード:1行でまとめる
# 2行で書く方法
age_str = input("年齢: ")
age = int(age_str)
# 1行でまとめる方法(こちらがよく使われる)
age = int(input("年齢: "))
💡 1行でまとめる書き方の解説
age = int(input("年齢: "))
この式は内側から順番に実行されます:
1. input("年齢: ") が実行され、ユーザーの入力を受け取る(例:”20″)
2. int("20") が実行され、整数 20 に変換
3. 結果の 20 が変数 age に保存される
📝 int()を使った計算例
コード:2つの数字を足す
# 2つの整数を入力してもらう
num1 = int(input("1つ目の数字: "))
num2 = int(input("2つ目の数字: "))
# 計算する
total = num1 + num2
difference = num1 - num2
product = num1 * num2
# 結果を表示
print(f"{num1} + {num2} = {total}")
print(f"{num1} - {num2} = {difference}")
print(f"{num1} × {num2} = {product}")
実行結果
1つ目の数字: 15 2つ目の数字: 3 15 + 3 = 18 15 - 3 = 12 15 × 3 = 45
🔢 5. float()で小数に変換
小数点を含む数値を扱いたい時は、float()関数で変換します。
📝 float()の基本的な使い方
コード:float()で小数に変換
# 身長をcmで入力(小数点を含む可能性がある)
height_cm = float(input("身長(cm)を入力してください: "))
# cmをmに変換(100で割る)
height_m = height_cm / 100
print(f"あなたの身長は{height_m}メートルです")
実行結果
身長(cm)を入力してください: 165.5 あなたの身長は1.655メートルです
📝 float()は整数も受け取れる
float()は小数だけでなく、整数も受け取れます。整数を入力すると、小数(.0付き)に変換されます。
コード:float()で整数を変換
# 整数を入力しても大丈夫
number = float(input("数字を入力: "))
print(f"変換後: {number}")
print(f"型: {type(number)}")
実行結果
数字を入力: 100 変換後: 100.0 型: <class 'float'>
💡 int()とfloat()の使い分け
・int():整数のみを扱う場合(年齢、個数、人数など)
・float():小数も扱う可能性がある場合(身長、体重、金額など)
迷ったらfloat()を使うと安全です(整数も小数も受け取れるため)。
📝 float()を使った実用例:割り勘計算
コード:割り勘計算機
# 合計金額と人数を入力
total = float(input("合計金額(円): "))
people = int(input("人数: "))
# 1人あたりの金額を計算
per_person = total / people
print(f"1人あたり{per_person}円です")
実行結果
合計金額(円): 5000 人数: 3 1人あたり1666.6666666666667円です
📝 小数点以下の桁数を指定して表示
小数点以下が長くなりすぎる場合は、表示する桁数を指定できます。
コード:小数点以下の桁数を指定
total = 5000
people = 3
per_person = total / people
# 小数点以下2桁まで表示
# :.2f は「小数点以下2桁」という意味
print(f"1人あたり{per_person:.2f}円です")
# 小数点以下0桁(整数部分のみ)
print(f"1人あたり約{per_person:.0f}円です")
実行結果
1人あたり1666.67円です 1人あたり約1667円です
💡 フォーマット指定の書き方
{変数:.桁数f}
・{value:.2f} → 小数点以下2桁
・{value:.1f} → 小数点以下1桁
・{value:.0f} → 整数部分のみ(四捨五入される)
📝 6. str()で文字列に変換
数値を文字列に変換したい時は、str()関数を使います。
🔰 str()が必要な場面
💡 なぜstr()が必要?
文字列と数値を「+」で連結しようとするとエラーになります。
数値を文字列に変換することで、連結ができるようになります。
※ただし、f文字列を使えばstr()なしでも連結できます。
📝 str()を使わないとエラー
コード:エラーになる例
age = 25
# これはエラーになる
# message = "私は" + age + "歳です"
# TypeError: can only concatenate str (not "int") to str
📝 str()で解決
コード:str()で文字列に変換
age = 25
# 方法1: str()で変換してから連結
age_str = str(age)
message = "私は" + age_str + "歳です"
print(message)
# 方法2: f文字列を使う(こちらが簡単でおすすめ)
message2 = f"私は{age}歳です"
print(message2)
実行結果
私は25歳です 私は25歳です
📌 文字列連結の方法比較
| 方法 | コード例 | おすすめ度 |
| str()で変換 | “私は” + str(age) + “歳” | △ |
| f文字列 | f”私は{age}歳” | ◎(推奨) |
| format() | “私は{}歳”.format(age) | ○ |
f文字列が最も簡潔で読みやすいので、おすすめです。
📝 str()の実用例
コード:数値をファイル名に使う
# 連番でファイル名を作る例
number = 5
# str()で変換してファイル名を作成
filename = "image_" + str(number) + ".png"
print(filename)
# f文字列でも同じことができる
filename2 = f"image_{number}.png"
print(filename2)
実行結果
image_5.png image_5.png
📘 型変換のまとめ
📌 型変換関数まとめ
| 関数 | 変換先 | 使う場面 |
| int() | 整数 | 年齢、個数、人数の計算 |
| float() | 小数 | 身長、体重、金額の計算 |
| str() | 文字列 | 数値を文字列に連結 |
⚠️ 7. よくあるエラーと対処法
入力と型変換でよく発生するエラーとその対処法を学びましょう。
❌ エラー1: 数字以外の文字を変換しようとした
コード:エラーが発生する例
age = int(input("年齢を入力: "))
ユーザーが「あいう」と入力した場合
年齢を入力: あいう ValueError: invalid literal for int() with base 10: 'あいう'
💡 原因と対処法
原因:「あいう」という文字列は数字ではないため、整数に変換できません。
対処法:
1. プロンプトで「数字を入力してください」と明確に伝える
2. 入力例を示す(例: “年齢を数字で入力してください(例: 20): “)
❌ エラー2: 小数を直接int()で変換しようとした
コード:エラーが発生する例
number = int(input("数字を入力: "))
ユーザーが「3.14」と入力した場合
数字を入力: 3.14 ValueError: invalid literal for int() with base 10: '3.14'
💡 原因と対処法
原因:int()は文字列「”3.14″」を直接整数に変換できません。
対処法:
方法1: float()を使う(小数として扱う)
方法2: int(float(…))で2段階変換(小数点以下を切り捨て)
コード:対処法
# 方法1: float()を使う(小数のまま使う)
number = float(input("数字を入力: "))
print(f"小数として: {number}") # 3.14
# 方法2: 2段階で変換(小数点以下を切り捨て)
number2 = int(float(input("数字を入力: ")))
print(f"整数として: {number2}") # 3
❌ エラー3: 何も入力せずにEnterを押した
コード:エラーが発生する例
age = int(input("年齢を入力: "))
何も入力せずにEnterを押した場合
年齢を入力: ValueError: invalid literal for int() with base 10: ''
💡 原因と対処法
原因:何も入力しないと空の文字列「””」になり、変換できません。
対処法:
1. プロンプトで必ず何か入力するよう促す
2. デフォルト値を設定する(後で学ぶif文を使う)
📘 エラー対処のまとめ
📌 よくあるエラーと対処法
| エラーの原因 | エラー名 | 対処法 |
| 文字を数値に変換 | ValueError | 数字を入力するよう明示 |
| 小数をint()で変換 | ValueError | float()を使う |
| 空の入力を変換 | ValueError | 入力例を示す |
| 文字列と数値を+で連結 | TypeError | f文字列を使う |
🛡️ エラーを防ぐコツ
1. プロンプトで「何を」「どのように」入力すべきかを明確に伝える
2. 入力例を示す(例: “年齢を入力(例: 25): “)
3. 小数も入力される可能性があるなら、float()を使う
🚀 8. 実践テクニック
ここまで学んだことを使って、実用的なプログラムを作ってみましょう。
例1: 簡単な計算機
コード:四則演算計算機
# タイトルと区切り線を表示
print("簡単な計算機")
print("=" * 30)
# 2つの数字を入力(小数も扱えるようにfloat()を使用)
num1 = float(input("1つ目の数字: "))
num2 = float(input("2つ目の数字: "))
# 計算結果を表示
print("\n計算結果:")
print(f"{num1} + {num2} = {num1 + num2}")
print(f"{num1} - {num2} = {num1 - num2}")
print(f"{num1} × {num2} = {num1 * num2}")
print(f"{num1} ÷ {num2} = {num1 / num2}")
実行結果
簡単な計算機 ============================== 1つ目の数字: 10 2つ目の数字: 3 計算結果: 10.0 + 3.0 = 13.0 10.0 - 3.0 = 7.0 10.0 × 3.0 = 30.0 10.0 ÷ 3.0 = 3.3333333333333335
例2: 年齢から生まれ年を計算
コード:生まれ年計算
# 現在の年を設定
current_year = 2025
# 年齢を入力(整数なのでint()を使用)
age = int(input("あなたの年齢は? "))
# 生まれ年を計算(今年 - 年齢)
birth_year = current_year - age
# 結果を表示
print(f"あなたは{birth_year}年生まれですね!")
print(f"来年は{age + 1}歳になります。")
実行結果
あなたの年齢は? 25 あなたは2000年生まれですね! 来年は26歳になります。
例3: 秒数を時分秒に変換
少し複雑な計算の例です。
コード:秒数を時分秒に変換
# 秒数を入力
total_seconds = int(input("秒数を入力してください: "))
# 時間を計算(3600秒 = 1時間)
# // は整数除算(商の整数部分だけを取得)
hours = total_seconds // 3600
# 分を計算(残りの秒数を60で割る)
# % は剰余(割り算の余り)
remaining = total_seconds % 3600 # 時間を引いた残り
minutes = remaining // 60
# 秒を計算(60で割った余り)
seconds = remaining % 60
# 結果を表示
print(f"{total_seconds}秒は{hours}時間{minutes}分{seconds}秒です")
実行結果
秒数を入力してください: 3665 3665秒は1時間1分5秒です
💡 計算の解説
3665秒の場合:
1. 時間: 3665 // 3600 = 1(時間)
2. 残り: 3665 % 3600 = 65(秒)
3. 分: 65 // 60 = 1(分)
4. 秒: 65 % 60 = 5(秒)
結果: 1時間1分5秒
例4: BMI計算機
コード:BMI計算機
print("BMI計算機")
print("=" * 30)
# 身長と体重を入力
height_cm = float(input("身長(cm): "))
weight = float(input("体重(kg): "))
# cmをmに変換
height_m = height_cm / 100
# BMIを計算(体重 ÷ 身長の2乗)
bmi = weight / (height_m * height_m)
# 結果を表示(小数点以下2桁)
print(f"\n身長: {height_cm}cm")
print(f"体重: {weight}kg")
print(f"BMI: {bmi:.2f}")
実行結果
BMI計算機 ============================== 身長(cm): 170 体重(kg): 65 身長: 170.0cm 体重: 65.0kg BMI: 22.49
例5: 複数の値を一度に入力する(応用)
スペース区切りで複数の値を一度に入力する方法です。
コード:スペース区切りの入力
# スペースで区切って3つの数字を入力
text = input("3つの数字をスペースで区切って入力: ")
# split()でスペースで分割し、リストにする
numbers = text.split()
# リストの各要素を整数に変換
a = int(numbers[0])
b = int(numbers[1])
c = int(numbers[2])
# 合計を計算
total = a + b + c
average = total / 3
print(f"入力された数字: {a}, {b}, {c}")
print(f"合計: {total}")
print(f"平均: {average:.2f}")
実行結果
3つの数字をスペースで区切って入力: 10 20 30 入力された数字: 10, 20, 30 合計: 60 平均: 20.00
💡 コードの解説
・text.split() → 文字列をスペースで分割してリストにする
”10 20 30″ → [“10”, “20”, “30”]
・numbers[0] → リストの1番目の要素(”10″)
・int(numbers[0]) → “10”を整数10に変換
📝 より簡潔な書き方(上級者向け)
コード:map()を使った書き方
# map()を使うと1行でできる
a, b, c = map(int, input("3つの数字: ").split())
print(f"合計: {a + b + c}")
実行結果
3つの数字: 10 20 30 合計: 60
💡 map()の解説
map(int, input().split())
・input().split() → [“10”, “20”, “30”]
・map(int, ...) → リストの各要素にint()を適用 → [10, 20, 30]
・a, b, c = ... → アンパックして3つの変数に代入
📝 練習問題(10問)
ここまで学んだことを実際に手を動かして確認しましょう。
問題1:名前を入力して挨拶(初級)
📋 問題
ユーザーに名前を入力してもらい、「こんにちは、〇〇さん!」と表示するプログラムを作りましょう。
解答を見る
コード
# input()で名前を入力してもらう
name = input("あなたの名前は? ")
# f文字列で挨拶を表示
print(f"こんにちは、{name}さん!")
実行結果
あなたの名前は? 太郎 こんにちは、太郎さん!
問題2:1年後の年齢を表示(初級)
📋 問題
ユーザーに現在の年齢を入力してもらい、1年後の年齢を表示しましょう。
解答を見る
コード
# 年齢を整数として入力
age = int(input("現在の年齢: "))
# 1年後の年齢を計算
next_year = age + 1
print(f"来年は{next_year}歳になります!")
実行結果
現在の年齢: 25 来年は26歳になります!
問題3:2つの数字の合計(初級)
📋 問題
2つの数字を入力してもらい、その合計を表示するプログラムを作りましょう。
解答を見る
コード
# 2つの整数を入力
num1 = int(input("1つ目の数字: "))
num2 = int(input("2つ目の数字: "))
# 合計を計算
total = num1 + num2
print(f"{num1} + {num2} = {total}")
実行結果
1つ目の数字: 15 2つ目の数字: 8 15 + 8 = 23
問題4:身長をメートルに変換(中級)
📋 問題
身長をcmで入力してもらい、メートルに変換して表示しましょう。
例: 165cm → 1.65m
解答を見る
コード
# 身長をcmで入力(整数でもfloatで受け取ると安全)
height_cm = float(input("身長(cm): "))
# cmをmに変換(100で割る)
height_m = height_cm / 100
print(f"あなたの身長は{height_m}メートルです")
実行結果
身長(cm): 165 あなたの身長は1.65メートルです
問題5:円の面積を計算(中級)
📋 問題
円の半径を入力してもらい、面積を計算して表示しましょう。
円周率は3.14として計算してください。
円の面積 = 円周率 × 半径 × 半径
解答を見る
コード
# 円周率を定義
PI = 3.14
# 半径を入力
radius = float(input("円の半径: "))
# 面積を計算
area = PI * radius * radius
print(f"円の面積は{area}です")
実行結果
円の半径: 5 円の面積は78.5です
問題6:温度変換(摂氏→華氏)(中級)
📋 問題
摂氏温度を入力してもらい、華氏温度に変換して表示しましょう。
変換式: 華氏 = 摂氏 × 1.8 + 32
解答を見る
コード
# 摂氏温度を入力
celsius = float(input("摂氏温度: "))
# 華氏に変換
fahrenheit = celsius * 1.8 + 32
print(f"{celsius}℃は{fahrenheit}℉です")
実行結果
摂氏温度: 25 25.0℃は77.0℉です
問題7:買い物の合計金額(中級)
📋 問題
商品の値段と個数を入力してもらい、合計金額を計算して表示しましょう。
解答を見る
コード
# 商品の値段と個数を入力
price = int(input("商品の値段(円): "))
quantity = int(input("個数: "))
# 合計金額を計算
total = price * quantity
print(f"合計金額: {total}円")
実行結果
商品の値段(円): 150 個数: 5 合計金額: 750円
問題8:3つの数字の平均値(上級)
📋 問題
3つの数字(小数可)を入力してもらい、平均値を計算して表示しましょう。
解答を見る
コード
# 3つの数字を入力(小数も扱えるようにfloat())
num1 = float(input("1つ目の数字: "))
num2 = float(input("2つ目の数字: "))
num3 = float(input("3つ目の数字: "))
# 平均を計算(合計 ÷ 個数)
average = (num1 + num2 + num3) / 3
print(f"平均値: {average:.2f}")
実行結果
1つ目の数字: 85 2つ目の数字: 92 3つ目の数字: 78 平均値: 85.00
問題9:秒数を「時:分:秒」に変換(上級)
📋 問題
秒数を入力してもらい、「〇時間〇分〇秒」の形式で表示しましょう。
例: 3665秒 → 1時間1分5秒
解答を見る
コード
# 秒数を入力
total_seconds = int(input("秒数を入力: "))
# 時間を計算(3600秒 = 1時間)
hours = total_seconds // 3600
# 分を計算(残りを60で割る)
minutes = (total_seconds % 3600) // 60
# 秒を計算(60で割った余り)
seconds = total_seconds % 60
print(f"{total_seconds}秒は{hours}時間{minutes}分{seconds}秒です")
実行結果
秒数を入力: 3665 3665秒は1時間1分5秒です
💡 解説
・// は整数除算(商の整数部分)
・% は剰余(余り)
・3665 // 3600 = 1(時間)
・3665 % 3600 = 65(残り秒)
・65 // 60 = 1(分)
・65 % 60 = 5(秒)
問題10:BMI計算機(上級)
📋 問題
身長(cm)と体重(kg)を入力してもらい、BMI(体格指数)を計算して表示しましょう。
計算式: BMI = 体重(kg) ÷ (身長(m) × 身長(m))
小数点以下2桁まで表示してください。
解答を見る
コード
# 身長と体重を入力
height_cm = float(input("身長(cm): "))
weight = float(input("体重(kg): "))
# cmをmに変換
height_m = height_cm / 100
# BMIを計算
bmi = weight / (height_m * height_m)
# 結果を表示(小数点以下2桁)
print(f"あなたのBMIは{bmi:.2f}です")
実行結果
身長(cm): 170 体重(kg): 65 あなたのBMIは22.49です
❓ よくある質問
Q1: input()で数字を入力したのに、計算できないのはなぜ?
input()で受け取った値は、必ず文字列(str)になります。
計算をするには、int()やfloat()で数値型に変換する必要があります。
例: age = int(input("年齢: "))
Q2: int()とfloat()はどう使い分ければいい?
整数(1, 2, 3…)だけを扱う時はint()を使います。
小数(3.14, 2.5…)も扱う可能性がある時はfloat()を使います。
迷ったらfloat()を使うと安全です(整数も扱えるため)。
Q3: ValueErrorが出たらどうすればいい?
ValueErrorは「変換できない値が入力された」という意味です。
・数字以外の文字が入力されていないか確認
・小数をint()で変換しようとしていないか確認
・空の入力がないか確認
Q4: 何も入力せずにEnterを押すとエラーになるのはなぜ?
空の文字列(“”)は数値に変換できないためです。
必ず何か入力してもらうか、プログラム側でデフォルト値を設定する必要があります。
Q5: プログラムを実行しても何も表示されないのはなぜ?
input()はユーザーの入力を待っている状態です。
何か文字を入力してEnterキーを押すと、プログラムが続きます。
プロンプト(メッセージ)がないと、入力待ちだとわかりにくいので注意しましょう。
🎉 ステップ10のまとめ
✅ このステップで学んだこと
✓ input()でユーザーから入力を受け取る
✓ input()の戻り値は必ず文字列(str)
✓ int()で文字列を整数に変換
✓ float()で文字列を小数に変換
✓ str()で数値を文字列に変換
✓ 入力と変換を1行でまとめる書き方
✓ よくあるエラー(ValueError)とその対処法
✓ 小数点以下の桁数を指定して表示(:.2f)
💪 次のステップへ
入力と型変換をマスターしました!
これで、ユーザーから値を受け取って計算するプログラムが作れるようになりました。
次のステップでは、条件分岐(if文)を学びます。
入力された値によって処理を変えられるようになりますよ!
学習メモ
Pythonプログラミング基礎 - Step 10