30/09/2018, 18:26

Hướng dẫn nhận dạng và cách sử dụng bàn phím (keyboard) trong Python

**

Chào các bạn topic này dùng để hướng dẫn cách sử dụng bàn phím (keyboard) trong python như thế nào !

**
Chắc hẳn đã vài lần bạn viết một chương trình và muốn sử dụng các phím điều hướng ( lên, xuống, trái, phải) hoặc các phím khác trên bàn phím mà khi ấn trực tiếp chương trình sẽ chạy lệnh.


Để làm điều này chúng ta cần biết đến module msvcrt và hàm ord() trong python

Trong module msvcrt có một hàm gọi là getch() . Chắc hẳn các bạn đã gặp nó ở đâu đó phải không ??? Vâng nó giống như lệnh getch() trong C/C++, ta sử dụng hàm này để nhận dạng ký tự mà ta ấn trên bàn phím và nó sẽ trả về giá trị.

Tuy nhiên giá trị hàm getch trả về không phải là dạng mã ASCII do đó mà ta cần biết đến hàm ord() trong python hàm này là hàm dựng sẵn chúng ta không cần import từ module khác

Về cách dùng:

  • Đối với các ký tự chữ cái bình thường chúng chỉ có một mã ASCII gọi là mã đơn

Muốn biết ký tự đó có mã là gì ta có thể tra bảng mã hoặc dùng hàm getch() và ord() để kiểm tra:
VD:

from msvcrt import getch
input_key = ord(getch())    # Hàm getch() sẽ nhận dạng phím mà bạn ấn vào và hàm ord() sẽ chuyển nó về mã ASCII
print(input_key)
i = input() # để dừng màn hình xem thôi
  • Đối với phím chức năng như các phím mũi tên, các phím F11,F12…

Chúng có mã ASCII kép nghĩa là để nhận dạng nó chúng ta cần biết hai mã đó và để lây được chúng tất nhiên là chúng ta cần thực hiện getch() 2 lần để chương trình nhận dạng được phím đó.

Để lấy được mã kép trên python ta làm như sau:
VD:

from msvcrt import getch
input_key1 = ord(getch())
input_key2 = ord(getch())
print(input_key1,input_key2)

Thế là bạn đã có thể nhận dạng và kiểm tra được mã ASCII của các phím rồi, nếu muốn xem cách nhận dạng tổ hợp phím thì trên nguyên tắt đó các bạn có thể tự mày mò

Nhưng còn trong chương trình thì sao?
Để khi ấn một phím thì một số lệnh nó sẽ thực hiện ta chỉ việc dùng các câu lệnh điều kiện
VD:
Đối với phím có mã ascii đơn thì ta có thể dùng như thế này:

if input_key == ( mã ascii):
      ......lệnh.....

Đối với phím có mã ascii kép thì ta dùng 2 điều kiện:

input_key1 = ord(getch())
if input_key1 == ( mã thứ nhẤt ): 
             input_key2 = ord(getch())
             if input_key2 ==( mã thứ hai ): 
                     ...........lệnh.............

Vâng bài hướng dẫn kết thúc !
Cảm ơn sự hướng dẫn và giúp đỡ của bạn thanhmssl10 - Thành Phạm và anh ltd - Lê Trần Đạt
P/s: bài viết thực hiện trên python 3x và chú ý để sử dụng được các code trên các bạn cần sử dụng python trên nền cmd nếu sử dụng môi trường IDLE sẽ không dùng được !

Thành Phạm viết 20:32 ngày 30/09/2018

Tks for share, hóng bài hướng dẫn làm game của b đấy

Bài liên quan
0