【Python 文法】input()とprint()を徹底解説!基本のデータ入出力マスター講座

Python

Pythonの学習を始めたばかりの皆さん、こんにちは!プログラミングの世界へようこそ。

「自分の書いたプログラムの結果を画面に表示したい」 「ユーザーに名前や数値を入力してもらって、それに応じた処理をしたい」

このように考えたことはありませんか?

プログラムが外部とやり取りする基本的な操作が**「入出力」**です。Pythonでは、この入出力を非常に簡単な関数で実現できます。この記事では、Pythonにおける最も基本的な入出力であるprint()関数(出力)とinput()関数(入力)について、初心者の方にも分かりやすく徹底的に解説します。

この記事を読み終える頃には、あなたは以下のことができるようになります。

  • print()を使って、画面に文字や変数の内容を自由自在に出力できる
  • input()を使って、ユーザーからのキーボード入力を受け取れる
  • 入力された文字列を数値に変換して計算に使える
  • 少し応用的な、一行で複数の入力を受け取る方法がわかる

それでは、さっそく見ていきましょう!

なお、この記事で解説する内容はPython 3系の全てのバージョンで共通して利用できる基本的な文法です。

Pythonの「出力」の基本:print()関数

まずは、プログラムの結果を画面に表示するための「出力」から学びます。Pythonで標準的な出力を行うにはprint()関数を使います。これはPythonを学ぶ上で最初に出会う、最も基本的な関数の一つです。

最も簡単な使い方:print()で文字列を出力する

print()の括弧 () の中に、表示したい文字列を引用符('または")で囲んで入れるだけです。

# "Hello, Python!"という文字列を画面に出力します
print("Hello, Python!")

これを実行すると、コンソール(実行結果が表示される画面)に Hello, Python! と表示されます。

変数の値を出力する方法

もちろん、変数の中身を出力することもできます。文字列と違い、変数を指定する際は引用符で囲みません。

# messageという変数に文字列を代入
message = "Pythonは楽しい!"

# 変数messageの中身を出力
print(message)

実行結果は Pythonは楽しい! となります。

複数の値をカンマで区切って出力する

print()関数では、カンマ(,)で区切ることで複数の値を同時に出力できます。出力された値の間には、自動的に半角スペースが挿入されます。

name = "山田"
age = 30

print("名前:", name, "年齢:", age, "歳")

実行結果は 名前: 山田 年齢: 30 歳 となります。とても簡単ですね。

【便利】f-stringを使ったフォーマット済み文字列の出力

変数が多くなってくると、カンマで区切る方法は少し見づらくなることがあります。そこでおすすめなのが**f-string(フォーマット済み文字列リテラル)**です。

文字列の開始引用符の前に f を付け、文字列の中に {} で変数を囲むことで、その場所に変数の値を埋め込むことができます。

name = "鈴木"
age = 25

# f-stringを使って、より直感的に文字列を組み立てる
print(f"私の名前は{name}です。年齢は{age}歳です。")

実行結果は 私の名前は鈴木です。年齢は25歳です。 となります。 この方法は非常に可読性が高く、現在のPythonでは主流の書き方ですので、ぜひ覚えておきましょう。

Pythonの「入力」の基本:input()関数

次に対話的なプログラムを作成するために不可欠な「入力」について学びます。ユーザーにキーボードから何かしらの値を入力してもらうにはinput()関数を使います。

キーボードからの入力を受け取る input()

input()関数を実行すると、プログラムの実行が一時停止し、ユーザーがキーボードから何かを入力してEnterキーを押すのを待ちます。入力された値は文字列として返され、変数に代入して後から利用できます。

print("あなたのお名前を教えてください。")

# input()で入力を受け取り、変数nameに代入する
name = input()

print(f"こんにちは、{name}さん!")

注意!input()で受け取った値はすべて文字列型

ここが初心者の方がつまずきやすい、非常に重要なポイントです。

input()関数で受け取った値は、たとえ数字を入力したとしても、すべて文字列(string)型として扱われます。

以下のコードを見てみましょう。

age_str = input("あなたの年齢を入力してください:")
print(f"あなたは{age_str}歳なのですね。")

# 10年後の年齢を計算しようとすると...?
# print(age_str + 10) # この行はエラーになります!

もし年齢として 20 と入力した場合、age_strという変数には数値の 20 ではなく、文字列の "20" が入ります。そのため、文字列 "20" と数値の 10 を足し算(+)しようとすると、型が違うためエラー(TypeError)が発生してしまいます。

文字列を数値に変換する方法 (int(), float())

入力された文字列の数値を計算などで使いたい場合は、適切な数値型に変換する必要があります。

  • 整数に変換する場合: int() 関数を使います。
  • 小数に変換する場合: float() 関数を使います。

先ほどのコードを修正してみましょう。

age_str = input("あなたの年齢を入力してください:")

# int()を使って、文字列を整数に変換する
age_num = int(age_str)

# これで数値として計算できる
future_age = age_num + 10
print(f"10年後、あなたは{future_age}歳ですね!")

このコードを実行し 20 と入力すると、age_numには数値の 20 が代入され、正しく計算が実行されて「10年後、あなたは30歳ですね!」と表示されます。

【応用】一行で複数の入力を受け取るテクニック

競技プログラミングなどでは、スペースで区切られた複数の数値が一行で入力されるケースがよくあります。(例: 10 20) このような入力を効率的に受け取る方法も見ておきましょう。

split()メソッドで文字列を分割する

文字列には、特定の区切り文字で文字列を分割し、リストを作成するsplit()という便利なメソッドがあります。input()と組み合わせることで、スペース区切りの入力を分割して受け取ることができます。

# 例として "10 20" と入力する
input_str = input("2つの数値をスペースで区切って入力してください:") # "10 20"
numbers_str_list = input_str.split() # ['10', '20']

print(numbers_str_list)
print(f"1つ目の文字列: {numbers_str_list[0]}")
print(f"2つ目の文字列: {numbers_str_list[1]}")

split()メソッドは、デフォルトでスペースを区切り文字として文字列を分割し、その結果をリスト(複数の値を格納できるデータ型)として返します。

map()関数と組み合わせて一括で数値に変換する

split()で分割した結果は、リストの各要素がまだ文字列のままです。これを一つずつint()で変換しても良いですが、map()関数を使うとよりスマートに書けます。

map()は、リストなどの複数の要素それぞれに対して、同じ処理(関数)を適用するための関数です。

# 例として "10 20 30" と入力する
# input().split()で入力された文字列をスペースで分割しリストにする
# map(int, ...)で、そのリストの各要素にint()関数を適用する
# list(...)で、mapオブジェクトをリストに変換する
numbers = list(map(int, input("複数の数値をスペース区切りで入力: ").split()))

print(numbers) # [10, 20, 30]

# 各要素が数値になっているので、計算に使える
total = sum(numbers)
print(f"合計値: {total}")

この一行のコードは少し複雑に見えるかもしれませんが、「入力 → 分割 → まとめて型変換」という一連の流れを表現しており、慣れると非常に便利なので、ぜひ覚えてみてください。

まとめ

今回は、Pythonにおける最も基本的なデータの「入出力」について、print()関数とinput()関数を中心に解説しました。

  • 出力: print()関数で、文字列や変数の値を画面に表示する。
    • f-string を使うと、変数を埋め込んだ文字列を分かりやすく作れる。
  • 入力: input()関数で、ユーザーからのキーボード入力を受け取る。
    • 最重要: input()の戻り値は常に文字列型
    • 計算で使う場合はint()float()で数値型に変換する必要がある。
  • 応用: split()map()を組み合わせることで、一行の複数入力を効率的に処理できる。

入出力は、ユーザーと対話したり、処理の途中経過を確認したりする、プログラミングの根幹をなす機能です。今回学んだことをベースに、ぜひ様々なプログラムを書いて、Pythonの世界をもっと楽しんでください!

コメント

タイトルとURLをコピーしました