Lấy đầu vào cho đến khi nhấn enter python

Có một số cách để kiểm tra xem phím ENTER có được nhấn hay không trong Python. Chúng tôi sẽ thảo luận về các phương pháp sau trong bài viết này

nội dung

  • 1 Cách 1. Sử dụng hàm input[]
  • 2 Cách 2. Sử dụng gói getkey
  • 3 Phương pháp 3a. Sử dụng gói getch [chỉ dành cho người dùng Linux và macOS]
  • 4 Phương pháp 3b. Sử dụng gói mvcrt trong Windows
  • 5 Cách 4. Sử dụng gói pynput
  • 6 Cách 5. Sử dụng gói bàn phím

Phương pháp 1. Sử dụng hàm input[]

Trong Python, hàm input[] cho phép đầu vào từ người dùng. Khi dấu nhắc đầu vào được bắt đầu, nó có thể được thoát bằng cách nhấn phím ENTER. Hàm input[] sẽ trả về giá trị do người dùng nhập vào và quá trình thực thi chương trình sẽ tiếp tục khi nhấn ENTER. Hãy xem một ví dụ

input1 = input["Press ENTER: "]  # use raw_input in python2
if input1 == "":
    # Captures situations where the input is just ENTER key
    print["You pressed ENTER."]
else:
    # If other characters are pressed before ENTER, it is captured here.
    print[f"You typed '{input1}' before pressing ENTER."]

Đầu ra [lần thực hiện đầu tiên]

Press ENTER:
You pressed ENTER.

Đầu ra [lần thực hiện thứ hai]

Press ENTER: Tomasz Decker
You typed 'Tomasz Decker' before pressing ENTER.

Trong lần thực hiện đầu tiên, ENTER được nhấn trên dấu nhắc. Điều này nắm bắt những gì chúng tôi muốn. Mặt khác, lần thực hiện thứ hai cho thấy điều ngược lại. Các ký tự khác được nhập trước khi nhấn ENTER

Phương pháp 2. Sử dụng gói getkey

Mô-đun getkey được sử dụng để đọc các lần nhấn phím đơn. Trong ví dụ sau, chúng tôi sử dụng gói để đọc các phím được nhấn và thoát khỏi vòng lặp while khi nhấn phím ENTER. Gói có thể được cài đặt bằng pip với lệnh sau

python3 -m pip3 cài đặt getkey

# "pip install getkey" if getkey is not installed
from getkey import getkey, key
while True:
    # Get the pressed key
    var = getkey[]
    # Print the pressed key
    print[var]
    if var == key.ENTER:
        # If the ENTER key is pressed, break the While loop.
        print["You pressed enter"]
        break

Phương pháp 3a. Sử dụng gói getch [chỉ dành cho người dùng Linux và macOS]

Python getch module also fetches keystrokes from the keyboard. The following code shows how getch reads the pressed key and the loop breaks once ENTER key is pressed. As shown by the output of repr[], the package captures ENTER with a new line character [“\n”].

Nếu getch chưa được cài đặt, bạn có thể cài đặt nó bằng pip bằng cách chạy lệnh sau trên thiết bị đầu cuối

python3 -m pip cài đặt getch

from getch import getch
while True:
    char = getch[]
    # print char that was pressed
    # for ENTER character nothing is displayed so we need to use repr[] function
    print[char]
    # repr[char] returns a printable representation of "char"
    # ENTER has a printable value "\n" [newline character]
    print[repr[char]]
    if char == "\n":
        # This captures "ENTER"
        break

Phương pháp 3b. Sử dụng gói mvcrt trong Windows

Không giống như getch được sử dụng trong Linux, mvcrt. getch[] đọc phím ENTER dưới dạng ký tự xuống dòng [“\r”]. mvcrt. getch[] tìm nạp phím được nhấn ở định dạng byte; . Việc thực thi vòng lặp while trong đoạn mã bên dưới sẽ bị ngắt khi nhấn phím ENTER

import msvcrt
while True:
    char = msvcrt.getch[].decode["utf-8"]
    print[char]
    # show printable representation of "char"
    # ENTER key is represented as "\r", the carriage return.
    print[repr[char]]
    if char == "\r":
        break

Phương pháp 4. Sử dụng gói pynput

Gói pynput Python sẽ được sử dụng trong phương pháp này để phát hiện bất kỳ lần nhấn phím nào. Có thể tìm thấy các lớp quản lý và giám sát bàn phím trong “pynput. bàn phím. Nó sử dụng pynput. bàn phím. phương pháp người nghe. Việc dừng Trình nghe có thể được thực hiện ở bất kỳ đâu hoặc bằng cách trả về Sai từ một cuộc gọi lại [như trong ví dụ sau]. Cuộc gọi lại [hiển thị] trả về Sai khi nhấn phím ENTER, dừng Trình nghe

Bạn có thể cài đặt pynput bằng cách chạy lệnh sau

python3 -m pip cài đặt pynput

# "python3 -m pip install pynput" if pynput is not installed.
from pynput.keyboard import Key, Listener
def show[key]:
    # Print pressed key
    print["\nYou Entered {}".format[key]]
    if key == Key.enter:
        # Release/ Stop listener if ENTER key is pressed
        return False
# Collect all events until released
with Listener[on_press=show] as listener:
    listener.join[]

Phương pháp 5. Sử dụng gói bàn phím

Gói bàn phím không có sẵn trong Python nhưng có thể được cài đặt bằng pip. Ngoài ra, bạn cần phải là người dùng root để cài đặt và sử dụng bàn phím trong Linux và macOS. Vì lý do đó, chúng ta cần gọi sudo khi cài đặt gói

Sudo pip3 cài đặt bàn phím

Đối với Windows, bạn có thể cài đặt và sử dụng gói bàn phím bình thường. Sử dụng lệnh sau trên Command Prompt hoặc Windows Powershell để cài đặt gói. “bàn phím gỡ cài đặt python3 -m pip”

Tập tin. nhấn_enter3. py

import keyboard
while True:
    # Print pressed keys
    print[keyboard.read_key[]]
    if keyboard.is_pressed["enter"]:
        # Break if ENTER key is pressed
        print["You pressed Enter"]
        break

Mã cũng phải được thực thi với các đặc quyền sudo. Ví dụ, để chạy press_enter3. py chứa đoạn mã trên, hãy chạy lệnh sau trên thiết bị đầu cuối

Chủ Đề