出力と入力
最初のコード行から使う2つのツール:print() はターミナルに値を表示し、input() はユーザーからテキストを取得します。シンプルですが、その挙動を知っておくことで、初期に遭遇するちょっとした驚きを避けられます。
Python がコードを実行する仕組み
Python はコードを上から下へ、一行ずつ、書いた順番どおりに実行します。ジャンプはしません。書いた順がそのまま実行順です。常に。
city = "東京"
print(city)
print("人口: 1400万人")city が最初に代入されます。最初の print が実行されます。次の print が実行されます。毎回、その順序で。
これが重要なのは、変数を代入する前に使うことができないからです。Python はまだそれを見ていないので、エラーを発生させます:
print(country) # NameError: country はまだ定義されていない
country = "日本"プログラムが大きくなっても、これを覚えておいてください:使うものは、使う前に定義されていなければなりません。
出力の表示
print() は Python があなたに話しかける方法です。任意の値を渡すと、その値を表示します。渡したものを自動的にテキストに変換します。
print("Hello") # Hello
print(42) # 42
print(3.14) # 3.14
print(True) # True複数の値
カンマで区切ることで、複数の値を一度に表示できます。Python はデフォルトでそれらの間にスペースを挿入します。sep でセパレーターを変更できます:
name = "さくら"
age = 28
print(name, age) # さくら 28
print("名前:", name) # 名前: さくら
print("2024", "01", "15", sep="-") # 2024-01-15
print("a", "b", "c", sep=", ") # a, b, c行末の制御
各 print() 呼び出しはデフォルトで改行で終わるので、次の出力は新しい行から始まります。end でそれを変更できます。end="" を設定すると、次の print は同じ行に続きます:
print("Loading", end="")
print("...")
# Loading...
print("one", end=" | ")
print("two", end=" | ")
print("three")
# one | two | threef-string による出力の書式化
メッセージを組み立てる最もきれいな方法は f-string です。開始引用符の前に f を付け、変数や式を中括弧で囲みます。Python が実行時に埋め込んでくれます。{} の中には、任意の値、計算、メソッド呼び出しを入れられます。
name = "さくら"
score = 980
# 連結: 不格好、数値には str() が必要
print("Player: " + name + ", Score: " + str(score))
# f-string: 読みやすく、手動変換が不要
print(f"Player: {name}, Score: {score}"){} の中には任意の式を入れられます:算術、メソッド呼び出し、フォーマット仕様:
price = 49.99
tax = 0.2
total = price * (1 + tax)
print(f"合計: {total:.2f}") # 合計: 59.99
print(f"名前: {name.upper()}") # 名前: さくら
print(f"2 + 2 = {2 + 2}") # 2 + 2 = 4: の後のフォーマット仕様は、値の表示方法を制御します:
ratio = 0.8765
count = 1234567
label = "revenue"
print(f"{ratio:.1%}") # 87.7%
print(f"{count:,}") # 1,234,567
print(f"{label:>12}") # " revenue":.2f は「小数点以下2桁」を意味します。価格や測定値で頻繁に使うことになります。それ以外は必要なときに使えばよいだけです。重要なのは、{} の中には変数名だけでなく、何でも入れられるということです。
ユーザーからの入力の取得
input() はプログラムを一時停止し、ユーザーが何かを入力するのを待ちます。ユーザーが入力(して Enter キーを押す)した内容が戻り値として返ります。括弧内の文字列は、ユーザーに表示されるプロンプトです。
name = input("お名前は? ")
print(f"こんにちは、{name}さん!")input() は、ユーザーが何を入力しても、常に文字列を返します。42 と入力しても、数値の 42 ではなく "42" が返ってきます。算術演算をするには、明示的に変換します:
age = int(input("年齢は? "))
print(f"10年後にはあなたは {age + 10} 歳になります。")変換できないものを入力するとどうなるでしょうか? Python は ValueError を発生させます。これを適切に扱う方法は ファイルと例外 の章で扱います。
実践
ユーザー入力からパーソナライズするクイズ:
name = input("お名前は? ")
subject = input("どの科目? ")
print(f"わかりました、{name}さん。{subject} クイズを開始します。")
print("頑張ってください!")どちらの入力も文字列として返ってきて、そのまま f-string に入ります。数値ではなくテキストとして使っているので、変換は不要です。

