はじめに:Pythonプログラミングの基本入出力(I/O)とは?
Pythonの学習を始めると、最初に出会うのが「入出力」の概念です。入出力、またはI/O (Input/Output) とは、プログラムが外部と情報をやり取りすることを指します。
- 入力 (Input): ユーザーがキーボードから入力した情報や、ファイルから読み込んだデータなど。
- 出力 (Output): 計算結果を画面に表示したり、ファイルにデータを保存したりすること。
この入出力は、あらゆるプログラムの根幹をなす非常に重要な機能です。
この記事で学べること
この記事では、Pythonにおける最も基本的で重要なI/O(入出力)操作を担う3つの組み込み関数を、初心者の方にも分かりやすく解説します。
input(): キーボードからの入力を受け取るprint(): 画面(コンソール)に文字や変数を表示するopen(): ファイルの読み書きを行う
これらの使い方をマスターすれば、簡単な対話型アプリケーションやデータ処理プログラムを作成する基礎が身につきます。
ユーザーからの入力を受け取る input() 関数
input()は、プログラムの実行中にユーザーからのキーボード入力を受け付け、その内容を文字列として取得するための関数です。
input() の基本的な使い方
使い方は非常にシンプルです。input()を呼び出すと、ユーザーが何かを入力してEnterキーを押すまで、プログラムの実行が一時停止します。
print("あなたのお名前を教えてください。")
name = input()
print(f"こんにちは、{name}さん!")input()関数に引数としてメッセージ(プロンプト)を渡すと、入力待ちであるこをユーザーに分かりやすく示すことができます。
name = input("あなたのお名前を教えてください: ")
print(f"こんにちは、{name}さん!")要注意!input() が返す値は常に「文字列」
input()を使う上で最も重要な注意点は、入力されたものが数字であっても、必ず文字列(string)として扱われることです。
age_str = input("あなたの年齢を教えてください: ")
print(type(age_str)) # <class 'str'> と表示される
# このままでは計算に使えない
# next_age = age_str + 1 # これはエラーになります!入力された文字列を数値として扱う方法
入力された文字列を数値(整数や小数)として計算に使いたい場合は、型変換を行う必要があります。
- 整数に変換する場合:
int() - 小数に変換する場合:
float()
age_str = input("あなたの年齢を教えてください: ")
age_int = int(age_str) # 文字列を整数に変換
next_age = age_int + 1
print(f"来年には{next_age}歳ですね!")結果を画面に表示する print() 関数
print()は、文字列や変数の内容を画面(コンソール)に出力するための、最もよく使われる関数です。
print() の基本的な使い方
引数に渡した文字列や数値をそのまま表示します。
print("Hello, Python!")
print(123)複数の値や変数をカンマでつなげて表示する
print()にカンマ区切りで複数の値を渡すと、それらが半角スペースで区切られて表示されます。
name = "Gem"
score = 95
print(name, "さんの点数は", score, "点です。")
# 実行結果: Gem さんの点数は 95 点です。f-string(フォーマット済み文字列リテラル)を使ったモダンな表示方法
Python 3.6以降では、f-stringを使うのが最も推奨される方法です。文字列の前にfを付け、変数名を{}で囲むだけで、簡単に文字列内に値を埋め込めます。コードが非常に読みやすくなるため、積極的に使いましょう。
name = "Gem"
score = 95
print(f"{name}さんの点数は{score}点です。")
# 実行結果: Gemさんの点数は95点です。ファイルを読み書きする open() 関数
open()は、テキストファイルなどの外部ファイルを操作(読み込み・書き込み)するために使用する関数です。
ファイル操作の基本と with 文の重要性
ファイルを操作する際は、open()でファイルを開き、処理が終わったら必ずclose()で閉じる必要があります。しかし、close()を忘れると問題が発生する可能性があるため、with文を使うのが一般的です。with文のブロックを抜けると、ファイルが自動的に閉じられるため安全です。
# with文を使った基本的な形
with open("ファイル名", "モード") as f:
# ファイルに対する処理をここに書くファイルを読み込む (mode='r')
ファイルの内容を読み込むには、モードに'r' (read) を指定します。
# message.txt というファイルに "Hello, File!" と書かれているとします。
try:
with open("message.txt", mode='r', encoding='utf-8') as f:
content = f.read() # ファイル全体を一度に読み込む
print(content)
except FileNotFoundError:
print("ファイルが見つかりませんでした。")ファイルに書き込む (mode='w', 'a')
ファイルに書き込む際のモードは主に2つあります。
'w'(write): 上書きモード。ファイルが存在しない場合は新規作成します。すでにファイルが存在する場合は、中身をすべて消して最初から書き込みます。'a'(append): 追記モード。ファイルが存在しない場合は新規作成します。ファイルが存在する場合は、末尾に内容を追記します。
# 'w'モードで上書き
with open("log.txt", mode='w', encoding='utf-8') as f:
f.write("最初のログです。\n")
# 'a'モードで追記
with open("log.txt", mode='a', encoding='utf-8') as f:
f.write("2行目のログを追記します。\n")日本語を扱うなら必須!文字コードの指定
日本語などの全角文字をファイルで扱う場合、文字化けを防ぐためにencoding='utf-8'を指定することが非常に重要です。これは現代のプログラミングでは、ほぼ必須のお作法だと考えましょう。
実践編:input(), print(), open()を組み合わせてみよう
最後に、これら3つの関数を組み合わせた簡単なプログラムを作ってみましょう。
ユーザーの名前を入力してもらい、ファイルに保存する
# 1. input()でユーザー名を取得
user_name = input("あなたの名前を入力してください: ")
# 2. open()でファイルに書き込み
file_path = "user_data.txt"
with open(file_path, mode='w', encoding='utf-8') as f:
f.write(user_name)
# 3. print()で完了メッセージを表示
print(f"ようこそ、{user_name}さん!")
print(f"あなたの名前を {file_path} に保存しました。")ファイルからメッセージを読み込んで、画面に表示する
# greeting.txt というファイルに "こんにちは、世界!" と保存しておきます。
file_path = "greeting.txt"
try:
# 1. open()でファイルから読み込み
with open(file_path, mode='r', encoding='utf-8') as f:
message = f.read()
# 2. print()で画面に表示
print("--- ファイルからのメッセージ ---")
print(message)
print("----------------------------")
except FileNotFoundError:
print(f"{file_path} が見つかりません。")まとめ:基本I/Oをマスターして次のステップへ
今回は、Pythonプログラミングの基礎となる3つの入出力関数を学びました。
input(): ユーザーからの入力を文字列として受け取る。print(): 画面に文字や変数を表示する。f-stringが便利。open(): ファイルの読み書きを行う。with文とencoding指定が重要。
これらの関数は、プログラムと「外の世界」をつなぐための重要な窓口です。まずはこの3つを使いこなし、ユーザーと対話したり、データを永続化したりするプログラム作りに挑戦してみてください。ここからあなたのPythonの世界が大きく広がっていきます。


コメント