出力と入力

最初の1行から使用する2つのツール: print()はターミナルに値を表示し、input()はユーザーからテキストを取得します。シンプルですが、その動作方法を理解することで初期段階での予期しない問題を回避できます。
Pythonがコードを実行する仕組み
Pythonはコードを上から下へ、1行ずつ、書いた順序そのままに実行します。ジャンプすることはありません。物事を書いた順序が実行される順序です。常にそうです。
city = "東京"
print(city)
print("人口: 1400万人")cityはまず割り当てられます。最初のprintが実行されます。2番目のprintが実行されます。毎回、その順序です。
これが重要な理由は、変数を割り当てる前に使用できないからです。Pythonはまだそれを見ていないため、エラーが発生します:
print(country) # NameError: countryはまだ定義されていません
country = "日本"プログラムが成長するにつれ、これを念頭に置いてください: 使用するすべてのものは、使用する前に定義する必要があります。
NameErrorが発生します。先へ飛ぶことはできません。ファイル全体を最初に読むこともありません。 出力を印字する
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:", name) # Name: 太郎
print("2024", "01", "15", sep="-") # 2024-01-15
print("a", "b", "c", sep=", ") # a, b, c行の終わり方を制御する
各print()呼び出しはデフォルトで改行で終わるため、次の出力は新しい行で始まります。endでそれを変更します。end=""を設定すると、次の印字は同じ行で続きます:
print("Loading", end="")
print("...")
# Loading...
print("one", end=" | ")
print("two", end=" | ")
print("three")
# one | two | threeprint()は与えたものをテキストに変換して表示します。コンマで区切って複数のものを渡すと、それらの間にスペースが表示されます。sepでそれを変更します。すべての印字は最後に新しい行にドロップされます。end=""は次のものを同じ行に保ちます。 f-stringsで出力をフォーマットする
メッセージを構築する最もクリーンな方法はf-stringsです。開き引用符の前にfを置き、変数または式を波括弧で囲みます。Pythonは実行時にそれを埋めます。{}内には任意の値、計算、またはメソッド呼び出しを入れることができます。
name = "太郎"
score = 980
# 連結: ぎこちない、数値に対してstr()が必要
print("Player: " + name + ", Score: " + str(score))
# f-string: 読みやすい、手動変換なし
print(f"Player: {name}, Score: {score}"){}内には任意の式を入れることができます: 算術、メソッド呼び出し(.upper()など、Stringsの章で完全に説明)、フォーマット仕様:
price = 49.99
tax = 0.2
total = price * (1 + tax)
print(f"Total: {total:.2f}") # Total: 59.99
print(f"Name: {name.upper()}") # Name: 太郎
print(f"2 + 2 = {2 + 2}") # 2 + 2 = 4:の後のフォーマット仕様は値の表示方法を制御します:
ratio = 0.8765
count = 1234567
label = "revenue"
print(f"{ratio:.1%}") # 87.6%
print(f"{count:,}") # 1,234,567
print(f"{label:>12}") # " revenue":.2fは「小数点以下2桁」を意味します。価格と測定用に絶えず使用します。その他すべてはそれが必要なときにそこにあります。主なこと: 変数名だけではなく、あらゆるものが{}内に入ることができます。
fを置き、あらゆるものを{}で囲みます: 変数、合計、メソッド呼び出しさえも。コロンはフォーマットを追加します。例えば小数点以下2桁の場合は:.2fです。`+`で文字列を接着するよりもはるかにクリーンです。 ユーザーから入力を取得する
input()はプログラムを一時停止し、ユーザーが何かを入力するまで待機します。入力して(Enterを押す)ものが戻り値として返されます。括弧内の文字列はユーザーが見るプロンプトです。
name = input("あなたの名前は? ")
print(f"こんにちは、{name}!")input() は常に文字列を返します。ユーザーが何を入力しても。42と入力すると、数値42ではなく文字列"42"が返ってきます。算術を行うには、明示的に変換します:
age = int(input("あなたは何歳ですか? "))
print(f"10年後には{age + 10}歳になっているでしょう。")ユーザーが変換できないものを入力した場合、PythonはValueErrorを発生させます。これを適切に処理することはFiles and exceptionsの章で説明されています。
input()はプロンプトを表示し、行を待機して、常にstringとして返します。数字を入力した場合でも。数値が必要ですか? 入力時にint()またはfloat()で自分で変換してから、正しい型で続行します。 実践に
ユーザー入力から自分をカスタマイズするクイズ:
name = input("あなたの名前は? ")
subject = input("どの科目ですか? ")
print(f"OK、{name}。{subject}のクイズを開始します。")
print("頑張ってください!")両方の入力は文字列として返され、f-stringsに直接送られます。テキストではなく数値として使用しているため、変換は不要です。

