はじめに
この関数を実装するには、プログラムを一時停止し、ユーザーからのキーボード入力を待ってキャプチャし、実行を続行するだけです。 Python にはこの関数の実装に役立つ組み込みライブラリがありますが、Windows と Linux では別の方法で扱う必要があります。
msvcrt
の getch()
メソッドは、キー応答を取得し、対応する文字を返す機能を Windows で実装するのに役立ちます。コマンドラインにはエコーされません。次のプログラム セグメントがあります: msvcrt
中的 getch()
方法 能够帮助在 Windows 下实现,其作用是获取一个按键响应并返回对应的字符。它并不在命令行中回显。有如下程序段:
import msvcrt print ord(msvcrt.getch())
这里利用 ord
将获得的字符转换为 ASCII
数值,例如捕获按键“d”(注意是小写)将得到数值100。
Linux 下呢?嗯,相对复杂一点点,不过先理清思路的话就好办了。
首先要知晓一下 Linux 终端的三种模式,分别为规范模式、非规范模式和 raw 模式:
规范模式
规范模式,也被成为 cooked
模式,是用户常见的模式。驱动程序输入的字符保存在缓冲区,并且仅在接收到回车键时才将这些缓冲的字符发送到程序。缓冲数据使驱动程序可以实现最基本的编辑功能, 被指派这些功能的特定键在驱动程序里设置,可以通过命令 stty
或系统调用 tcsetattr
来修改。
非规范模式
当缓冲和编辑功能被关闭时,连接被成为非规范模式。终端处理器仍旧进行特定的字符处理,例如处理 Ctrl-C 及换行符之间的转换,但是编辑键将没有意义,因此相应的输入被视为常规的数据输入,程序需要自己实现编辑功能。
raw 模式
当所有处理都被关闭后,驱动程序将输入直接传递给程序,连接被成为 raw
import os import termios # 获取标准输入的描述符 fd = sys.stdin.fileno() # 获取标准输入(终端)的设置 old_ttyinfo = termios.tcgetattr(fd) # 配置终端 new_ttyinfo = old_ttyinfo[:] # 使用非规范模式(索引3是c_lflag 也就是本地模式) new_ttyinfo[3] &= ~termios.ICANON # 关闭回显(输入不会被显示) new_ttyinfo[3] &= ~termios.ECHO # 使设置生效 termios.tcsetattr(fd, termios.TCSANOW, new_ttyinfo) # 从终端读取 print ord(os.read(fd, 7))ここでは、
ord
を使用して、取得した文字を ASCII
値に変換します。たとえば、キャプチャ キー "d" です。 (小文字であることに注意してください) 値 100 が取得されます。 Linux?そうですね、少し複雑ですが、最初に自分の考えを明確にしておくと簡単になります。 まず、Linux ターミナルの 3 つのモード、正規モード 、非正規モード
、および未加工モードについて知っておく必要があります。
正規モード
正規モード。クック
モードとも呼ばれ、ユーザー間で共通のモードです。ドライバーによって入力された文字はバッファーに保存され、これらのバッファーされた文字は Enter キーが受信されたときにのみプログラムに送信されます。バッファされたデータにより、ドライバーは最も基本的な編集機能を実装できます。これらの機能に割り当てられた特定のキーはドライバー内で設定され、コマンド stty
またはシステム コール tcsetattr を介して変更できます。コード> 。 🎜🎜<strong>非正規モード 🎜🎜🎜 バッファリングと編集がオフになると、接続は非正規モードになります。端末プロセッサは、Ctrl-C と改行文字間の変換の処理など、特定の文字処理を実行しますが、編集キーは意味を持たないため、対応する入力は通常のデータ入力として扱われ、プログラムは編集機能を実装する必要があります。自体。 🎜🎜<strong>raw モード 🎜🎜🎜 すべての処理がオフになり、ドライバーが入力をプログラムに直接渡す場合、接続は <code>raw
モードと呼ばれます。 🎜🎜ここでは非正規モードに頼る必要があるため、Windows で同様の動作を実現するには、次のコードが必要です: 🎜🎜🎜import msvcrt print("Press 'D' to exit...") while True: if ord(msvcrt.getch()) in [68, 100]: break🎜🎜🎜 この観点からは、上記のメソッドを使用するだけで済みます。をクリックしてキーの応答をキャプチャし、プログラムを続行すると、任意のキーを押して続行または終了できます。もちろん、指定したキーを押して続行または終了する機能も同様の方法で実装できます。例: 🎜🎜🎜rrreee🎜🎜🎜 このように、ユーザーが「D」または「d」を押すと、プログラムが終了します。 🎜🎜任意のキーを押して続行/終了する Python の機能に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。 🎜

2時間以内にPythonの基本的なプログラミングの概念とスキルを学ぶことができます。 1.変数とデータ型、2。マスターコントロールフロー(条件付きステートメントとループ)、3。機能の定義と使用を理解する4。

Pythonは、Web開発、データサイエンス、機械学習、自動化、スクリプトの分野で広く使用されています。 1)Web開発では、DjangoおよびFlask Frameworksが開発プロセスを簡素化します。 2)データサイエンスと機械学習の分野では、Numpy、Pandas、Scikit-Learn、Tensorflowライブラリが強力なサポートを提供します。 3)自動化とスクリプトの観点から、Pythonは自動テストやシステム管理などのタスクに適しています。

2時間以内にPythonの基本を学ぶことができます。 1。変数とデータ型を学習します。2。ステートメントやループの場合などのマスター制御構造、3。関数の定義と使用を理解します。これらは、簡単なPythonプログラムの作成を開始するのに役立ちます。

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

Python 3.6のピクルスファイルのロードレポートエラー:modulenotFounderror:nomodulenamed ...

風光明媚なスポットコメント分析におけるJieba Wordセグメンテーションの問題を解決する方法は?風光明媚なスポットコメントと分析を行っているとき、私たちはしばしばJieba Wordセグメンテーションツールを使用してテキストを処理します...

正規表現を使用して、最初の閉じたタグと停止に一致する方法は? HTMLまたは他のマークアップ言語を扱う場合、しばしば正規表現が必要です...


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

SublimeText3 中国語版
中国語版、とても使いやすい
