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の世界をもっと楽しんでください!


コメント