Python:入出力(print / input)の解説

投稿日:2026-01-02

音声

※ AI音声で読み上げます

目次

  1. 入出力の基本
  2. 実践:標準出力と標準入力(最小コード)
  3. デバッグと確認方法
  4. 1段ステップアップ:ファイル入出力と例外処理
  5. 注意(ここだけ)
  6. 要約

入出力の基本

今回できるようになることは、printでの出力、inputでの入力、型変換、そして簡単なデバッグです。

printは標準出力(コンソール)に表示する関数です。複数の値をカンマ区切りで渡すと、自動でスペース区切りで表示されます。sepやendを使うと、区切り文字や末尾の改行を変更できます。

print("a", "b", "c")
print("a", "b", "c", sep="-")
print("Hello", end="!")
print(" world")

inputはユーザーから文字列を受け取る関数です。数値として扱いたい場合は、intやfloatで型変換します。inputは常に文字列(str)を返す点が要チェックです。

name = input("名前を入力してください: ")
age = int(input("年齢を入力してください: "))
height = float(input("身長を入力してください: "))

printにfile引数を渡すと、ファイルへ書き出せるためログのような出力にできます。

with open("app.log", "a", encoding="utf-8") as f:
    print("処理を開始しました", file=f)

実践:標準出力と標準入力(最小コード)

最小コードは次のとおりです。

# input_output_demo.py
def get_user_info():
    name = input("名前を入力してください: ")
    age_s = input("年齢を入力してください: ")
    try:
        age = int(age_s)
    except ValueError:
        print("年齢は整数で入力してください。30と仮定します。")
        age = 30
    print(f"こんにちは、{name}さん。{age}歳ですね。")
    print("次の年に", age+1, "歳になります。", sep=" ")
    return name, age

if __name__ == "__main__":
    get_user_info()

このコードは名前と年齢を受け取り、年齢を整数に変換してメッセージを表示します。int() の変換で ValueError が発生した場合は例外処理で既定値を使います。

実行方法は次のとおりです。

python input_output_demo.py

または VSCode でファイルを開き、右上の実行ボタンをクリックして実行します。

出力例は次のとおりです。

名前を入力してください: 田中
年齢を入力してください: 29
こんにちは、田中さん。29歳ですね。
次の年に 30 歳になります。

デバッグと確認方法

確認方法として、printで途中結果を出すと状況を追いやすいです。

また、type()で型を確認すると、想定どおりにデータが扱えているかを把握しやすいです。

小さな入力例を手で渡して、期待値と比較する方法も有効です。

デバッグの見方としては、printやlogging、変数の確認が重要です。開発初期はprintで変数の値と型を表示して確認するとよいです。

表示が多すぎる場合はloggingモジュールを使い、ログレベルを切り替えると整理しやすいです。

VSCodeのデバッガでは変数をウォッチしながらステップ実行できるため、処理の流れと値の変化を追いやすいです。

出力を見て意図した型かどうかや、空文字ではないかを要チェックにすると、原因特定が早くできます。

よくあるミスとして、int変換に失敗してValueErrorになることがあります。この場合は例外処理を追加するか、入力前にisdigit()で検査すると改善しやすいです。

text = input()
if text.isdigit():
    value = int(text)
    print(value, type(value))
else:
    print("数値として解釈できない入力です。", text, type(text))

1段ステップアップ:ファイル入出力と例外処理

使い分けの基準は、短いデバッグ出力はprintを使い、運用ログや詳細な診断はloggingを使うことです。ユーザー入力はinputを使い、スクリプト引数はargparseを使うのが基本です。

ファイル入出力はopenで読み書きします。例外処理を組み合わせると安全性が上がります。

with open("out.txt", "w", encoding="utf-8") as f:
    f.write(f"{name},{age}\n")

上記は簡単な保存例です。入出力をファイルに移すと自動化や後処理がしやすくなります。

ファイル操作ではFileNotFoundErrorやPermissionErrorが発生する可能性があるため、try/exceptで囲むと堅牢になります。小さなステップアップとして、入力値の検証と例外処理を組み合わせると実運用に耐えるコードになります。

注意(ここだけ)

  • input()は対話式でユーザーの入力を待ち続けるため、CIや自動化環境で実行すると処理が止まります。

    自動実行するときはinput()を使わず、コマンドライン引数(argparse)や環境変数を利用してください。

要約

  • printで出力し、inputは文字列を返すことを理解できます。
  • sepやend、f文字列で見やすい出力を作れることを学べます。
  • 型変換(int/float)と例外処理で入力エラーを扱えることを示しました。
  • デバッグはprint→logging→デバッガの順で進める基準が使えることを示しました。
  • 自動化ではinputを避け、ファイル保存や引数処理に切り替えることが要チェックです。

30秒チェックとして、input()の戻り値の型はstr(文字列)です。整数として使う場合はint()で変換する必要があります。