MENU

Pythonでキーボード入力を受け取る方法まとめ!初心者におすすめの使い方を解説

プログラムを作成する際、ユーザーからの入力を受け取る機能は欠かせません。Pythonでは、input()関数を使うことで簡単にキーボードからの入力を受け取ることができます。本記事では、input()関数の基本的な使い方から、数値のみの入力を受け取る方法、複数の値を入力する方法など、実践的なテクニックまで詳しく解説します。

また、input()以外にも、キーボード入力を扱うためのkeyboardライブラリや、標準入力から読み込む方法についても触れます。さらに、GUIアプリケーションでの入力フォームについても簡単に紹介します。Pythonでキーボード入力を扱うための基礎知識を身につけたい方は、ぜひ本記事を参考にしてみてください。

目次

input()関数の基本的な使い方

Pythonでキーボード入力を受け取るには、input()関数を使います。input()は組み込み関数で、ユーザーからのキーボード入力を文字列として受け取ります。name = input("Enter your name: ") print("Hello, " + name)

実行結果:Enter your name: Alice Hello, Alice

このように、input()関数の引数にはプロンプト(入力を促すメッセージ)を指定できます。ユーザーが入力した値は、常に文字列型(str)として返されます。

ここで注意したいのが、Python2とPython3での違いです。Python2ではraw_input()関数を使ってキーボード入力を受け取ります。Python2のinput()関数は、入力された値を式として評価してしまうため、セキュリティ上の理由から使用が推奨されていません。

Python2を使っている方は、raw_input()を使うようにしましょう。Python3ではinput()関数がraw_input()の代わりになりました。

数値の入力を受け取る(python キーボード入力 数値)

input()関数で受け取った値は、常に文字列型になります。そのため、数値として扱いたい場合は、int()float()などを使って型変換する必要があります。age = input("Enter your age: ") age = int(age) print("Your age is", age)

実行結果:Enter your age: 25 Your age is 25

ここでは、input()で受け取った年齢をint()で整数型に変換しています。こうすることで、数値として扱うことができます。

ただし、ユーザーが数値以外の値を入力した場合、ValueErrorが発生してしまいます。エラーを防ぐためには、例外処理を行うのが一般的です。try: age = int(input("Enter your age: ")) print("Your age is", age) except ValueError: print("Invalid input. Please enter a number.")

このように、tryexceptを使って例外処理を行うことで、ユーザーが数値以外を入力した場合でもエラーを回避できます。

数値のみの入力を受け取る(python 入力 数値のみ)

上述の例外処理を使えば、数値以外の入力を弾くことができますが、もっと簡単に数値のみの入力を受け取る方法もあります。それが、str.isdigit()メソッドを使う方法です。while True: age = input("Enter your age: ") if age.isdigit(): age = int(age) break else: print("Invalid input. Please enter a number.") print("Your age is", age)

ここでは、whileループを使って、数値のみの入力が得られるまで繰り返し入力を求めています。str.isdigit()は、文字列が数字のみで構成されているかを判定するメソッドです。数字のみの場合はTrueを、そうでない場合はFalseを返します。

この方法を使えば、数値のみの入力を簡単に受け取ることができます。

複数の値を入力する(python キーボード入力 複数)

input()関数を使って、複数の値をまとめて入力することもできます。例えば、以下のようにカンマ区切りで値を入力し、split()メソッドで分割するという方法があります。x, y = input("Enter two numbers (comma-separated): ").split(",") x = int(x) y = int(y) print("x =", x) print("y =", y)

実行結果:Enter two numbers (comma-separated): 10,20 x = 10 y = 20

split(",")とすることで、入力された文字列をカンマで分割し、それぞれの値を変数に代入しています。ここでも、必要に応じてint()などで型変換を行います。

ただし、この方法では入力される値の数が予め決まっている必要があります。可変長の入力を受け取りたい場合は、以下のようにループを使う方法があります。numbers = [] while True: inp = input("Enter a number (or press Enter to finish): ") if inp == "": break numbers.append(int(inp)) print("You entered:", numbers)

実行結果:Enter a number (or press Enter to finish): 10 Enter a number (or press Enter to finish): 20 Enter a number (or press Enter to finish): 30 Enter a number (or press Enter to finish): You entered: [10, 20, 30]

ここでは、空文字が入力されるまでwhileループを回し、入力された値をnumbersリストに追加しています。こうすることで、任意の数の値を入力できるようになります。

キー入力を検知する(Python keyboard)

input()関数は、ユーザーが入力するまでプログラムをブロックします。つまり、input()が呼ばれた時点で、次の行に進むまでプログラムが一時停止するのです。

しかし、特定のキーが押されたかどうかを判定したい場合や、キーの押下や離脱のイベントをフックしたい場合には、input()では実現が難しくなります。そんな時は、keyboardライブラリを使うのがおすすめです。import keyboard while True: if keyboard.is_pressed("q"): print("q key pressed") break

この例では、keyboardライブラリを使ってqキーが押されたかどうかを判定しています。qキーが押されるまでループを回し続け、押された時点でループを抜けるという処理になっています。

keyboardライブラリを使えば、グローバルホットキーを設定することもできます。つまり、他のアプリケーションがアクティブな状態でも、特定のキー操作でプログラムを制御できるようになるのです。

keyboardライブラリを使えば、キー入力に関するさまざまな処理を柔軟に行えます。

標準入力から読み込む

これまで見てきたinput()関数は対話的なキーボード入力を想定したものでしたが、標準入力からデータを読み込むこともできます。標準入力からの読み込みには、sysモジュールのstdinを使います。import sys for line in sys.stdin: print(line)

この例では、標準入力から1行ずつデータを読み込み、そのまま出力しています。標準入力は、キーボードからの入力だけでなく、パイプやリダイレクトを使ったデータの受け渡しにも使えます。

例えば、以下のようにファイルの内容を標準入力に渡すことができます。$ cat data.txt | python script.py

こうすることで、script.pyの中ではsys.stdinを使ってファイルの内容を1行ずつ読み込むことができます。

標準入力からの読み込みは、対話的な入力よりもプログラムの自動化に向いています。複数のプログラムをパイプでつないで処理を行う際などに重宝するでしょう。

GUIアプリケーションでの入力フォーム(python 入力フォーム)

ここまでは主にコンソールアプリケーションでのキーボード入力について見てきましたが、GUIアプリケーションでの入力フォームについても簡単に触れておきます。

Pythonにはtkinterという標準のGUIライブラリがあり、これを使って入力フォームを作ることができます。import tkinter as tk def submit(): name = entry.get() print("Hello,", name) root = tk.Tk() root.title("Input Form") label = tk.Label(root, text="Enter your name:") label.pack() entry = tk.Entry(root) entry.pack() button = tk.Button(root, text="Submit", command=submit) button.pack() root.mainloop()

この例では、tkinterを使って簡単な入力フォームを作成しています。Entryウィジェットを使ってテキスト入力欄を作り、Buttonウィジェットを使って送信ボタンを作っています。送信ボタンが押されると、submit()関数が呼ばれ、入力された名前が表示されます。

GUIアプリケーションでの入力フォームは、コンソールアプリケーションでのキーボード入力とは異なる方法で処理されますが、ユーザーからの入力を受け取るという点では共通しています。

まとめ

本記事では、Pythonでキーボード入力を受け取る方法について詳しく解説しました。input()関数を使えば、簡単にユーザーからの入力を受け取ることができます。また、数値の入力を受け取る方法や、複数の値を入力する方法などについても見てきました。

input()以外にも、keyboardライブラリを使ってキー入力を検知したり、sys.stdinを使って標準入力から読み込んだりする方法があることも確認しました。さらに、GUIアプリケーションでの入力フォームについても簡単に触れました。

Pythonでキーボード入力を扱う際は、以下の点に注意しましょう。

  • input()は常に文字列を返すため、数値として扱いたい場合は型変換が必要
  • Python2ではraw_input()を使う
  • input()はユーザーが入力するまでプログラムをブロックする
  • 特殊なキー入力を検知したい場合は、keyboardライブラリを使う
  • 標準入力からの読み込みにはsys.stdinを使う
  • GUIアプリケーションではtkinterなどを使って入力フォームを作る

Pythonでのキーボード入力は、アプリケーションを作る上で欠かせない機能です。ユーザーとのインタラクションを考えながら、適切な方法を選択していきましょう。 方法 概要 input() ユーザーからの入力を文字列として受け取る int(input()) 数値の入力を受け取る str.isdigit() 数値のみの入力を受け取る split() 複数の値を入力する keyboardライブラリ キー入力を検知する sys.stdin 標準入力から読み込む tkinter GUIアプリケーションで入力フォームを作る

参考になるリンクをいくつか紹介しておきます。

本記事が、Pythonでのキーボード入力について理解を深める一助となれば幸いです。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次