Nhập dữ liệu cho đến khi nhấn enter

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

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ụ

1

2

3

4

5

6

7

input1 = input("Nhấn ENTER. ")  # sử dụng raw_input trong python2

if input1 == "".

    # Ghi lại các tình huống mà đầu vào chỉ là phím ENTER

    in("Bạn đã nhấn ENTER. ")

khác.

    # Nếu các ký tự khác được nhấn trước ENTER, nó sẽ được ghi lại ở đây.

    in(f"Bạn đã nhập '{input1 . ")

Đầu ra (lần thực hiện đầu tiên)

1

2

Nhấn ENTER.

Bạn nhấn ENTER.

Đầu ra (lần thực hiện thứ hai)

1

2

Nhấn ENTER. Tomasz Decker

Bạn đã nhập 'Tomasz Decker' trước khi nhấn < . 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

1

2

3

4

5

6

7

8

9

10

11

<a id="post-1655-></a># "pip install getkey" if getkey is not installed

từ getkey nhập getkey, key

trong khi Đúng.

    # Nhận phím đã nhấn

    var = getkey()

    # In phím đã nhấn

    in(var)

    if var == key.NHẬP.

        # Nếu phím ENTER được nhấn, ngắt vòng lặp While.

        in("Bạn đã nhấn enter")<

        nghỉ

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

1

2

3

4

5

6

7

8

9

10

11

12

<a id="post-1655-></a>from getch import getch

trong khi Đúng.

    char = get()

    # ký tự in đã được nhấn

    # ký tự ENTER không có gì hiển thị nên chúng ta cần sử dụng hàm repr()

    in(char)

    # repr(char) trả về một đại diện có thể in được của "char"

    # ENTER có giá trị in được "\n" (ký tự xuống dòng)

    in(repr(char))

    if char == "\n"< . :

        # Điều này chụp "ENTER"

        nghỉ

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

1

2

3

4

5

6

7

8

9

<a id="post-1655-></a>import msvcrt

trong khi Đúng.

    char = msvcrt. lấy(). giải mã("utf-8")

    in(char)

    # hiển thị biểu diễn có thể in được của "char"

    # Phím ENTER được thể hiện là "\r", dấu xuống dòng.

    in(repr(char))

    if char == "\r"< . :

        nghỉ

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

1

2

3

4

5

6

7

8

9

10

11

<a id="post-1655- . ></a># "python3 -m pip install pynput" if pynput is not installed.

từ pynput. bàn phím nhập Phím, Trình nghe

def show(key):

    Đã nhấn # phím in

    in("\nBạn đã nhập {}". định dạng(khóa))

    if key == Key.nhập.

        # Giải phóng/ Dừng trình nghe nếu nhấn phím ENTER

        trả về Sai

# Thu thập tất cả các sự kiện cho đến khi phát hành

với Trình nghe(on_press=show) as listener:

    người nghe. tham gia()

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

1

2

3

4

5

6

7

8

nhập bàn phím

trong khi Đúng.

    # Phím in được nhấn

    in(bàn phím. read_key())

    nếu bàn phím. được_ép("enter"):

        # Ngắt nếu nhấn phím ENTER

        in("Bạn đã nhấn Enter")<

        nghỉ

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