Pythonでキーボード入力を逆順に取得する方法


を使用して、キーボードからの入力を逆順に取得する方法を示します。

まず、sys.stdinを使用してキーボード入力を取得します。sys.stdinは標準入力ストリームを表すオブジェクトであり、キーボードからの入力を読み込むために使用されます。

次に、setrawを使用してキーボード入力を非バッファリングモードに設定します。このモードでは、キーが押されるたびに入力が即座に利用可能になります。

以下に、具体的なコード例を示します。

import sys
import tty
def get_reverse_input():
    # キーボード入力を非バッファリングモードに設定
    tty.setraw(sys.stdin.fileno())
    # キーボードからの入力を逆順で取得
    input_chars = []
    try:
        while True:
            # キー入力を1文字ずつ取得
            char = sys.stdin.read(1)
            # 改行文字が入力されたら終了
            if char == '\n':
                break
            # 入力文字をリストに追加
            input_chars.append(char)
    finally:
        # キーボード入力を元のモードに戻す
        tty.setcbreak(sys.stdin.fileno())
    # 入力文字を逆順に並び替えて文字列に変換
    reverse_input = ''.join(reversed(input_chars))
    return reverse_input
# 逆順の入力を取得
reverse_input = get_reverse_input()
print("逆順の入力: ", reverse_input)

このコードでは、get_reverse_input関数を定義し、キーボードからの入力を逆順に取得します。tty.setrawを使用して非バッファリングモードに設定し、sys.stdin.read(1)を使用して1文字ずつ入力を読み取ります。入力が改行文字の場合は処理を終了し、それ以外の場合は入力文字をリストに追加します。最後に、reversedを使用して入力文字を逆順に並び替え、文字列に変換します。

上記のコードを実行すると、キーボードからの入力を逆順に表示することができます。この方法を使用すると、任意の長さの入力に対して逆順の処理を行うことができます。