Cách ẩn đầu vào trong python

HTML được sử dụng để xác định trường Ẩn đầu vào. Một trường ẩn cũng bao gồm những dữ liệu mà người dùng không thể nhìn thấy hoặc sửa đổi khi gửi biểu mẫu. Trường ẩn chỉ lưu trữ những bản ghi cơ sở dữ liệu cần được cập nhật khi gửi biểu mẫu.  

Thuộc tính khả năng hiển thị cho phép tác giả hiển thị hoặc ẩn một phần tử. Nó tương tự như thuộc tính hiển thị. Tuy nhiên, điểm khác biệt là nếu bạn đặt display:none, nó sẽ ẩn toàn bộ phần tử, trong khi visibility:hidden có nghĩa là nội dung của phần tử sẽ không nhìn thấy, nhưng phần tử vẫn giữ nguyên vị trí và kích thước ban đầu.

Trong ngôn ngữ lập trình Python, chúng ta sử dụng lệnh input[] để lấy dữ liệu từ người dùng, cái mà chúng ta đều biết. Nhưng đôi khi chúng ta muốn lấy input để người dùng thực sự nhập vào nhưng lại không thể hiện ra command prompt. Trong những trường hợp này, chúng tôi sử dụng thư viện '' getpass '' cục bộ.
Bây giờ chúng ta muốn cùng nhau viết một hàm nhập liệu bí mật để thực hiện thao tác getpass nhưng làm cho giao diện của chương trình đẹp hơn và ẩn các mục nhập bằng dấu sao hoặc màn hình tùy chỉnh. [Giống như mục nhập mật khẩu trong html]

Vì chúng ta không được phép thực hiện một thao tác khi nhận một đầu vào đơn giản trong Python, nên hãy sử dụng pynput và lấy đầu vào từ bàn phím người dùng
Trong bài viết ngắn này, tôi muốn .

Làm thế nào nó hoạt động?

Lớp này nhận đầu vào của bạn bằng pynput và thực hiện mô phỏng hoàn toàn với một vài thuật ngữ và bản in đơn giản.
Chức năng của chức năng này là nhận đầu vào của người dùng bằng cách sử dụng pynput, nhưng vì pynput nhận đầu vào của người dùng ở bất kỳ đâu và chúng tôi chỉ muốn nhận đầu vào mà người dùng nhập trong bảng điều khiển .
Để hiển thị các ngôi sao và bất kỳ ký tự trang phục nào khác làm đầu vào, chúng ta phải in nó với một đầu trống. Nhưng không thể in chúng bằng print[]. Vì vậy, chúng tôi làm điều này bằng cách sử dụng mô-đun sys và sys. lệnh stdout và in các biểu thức. Nhấp để đọc một chút về sys. in ấn tiêu chuẩn.
Cho đến nay, đầu vào được nhận và dấu sao hoặc bất kỳ ký tự nào khác được in trong khi nhập. Bây giờ chúng tôi muốn đảm bảo rằng nếu ký tự sai và chúng tôi nhấn phím lùi, ký tự đó sẽ bị xóa khỏi bảng điều khiển.
Nếu chúng ta để ý, các đầu vào được gửi trong on_press có một giá trị là char mà chúng ta có thể nhận được giá trị đó. Nhưng đối với các phím như Liên, xóa lùi, phím mũi tên, v.v. , nó không phải như thế này và nó được nâng lên. Vì vậy, chúng tôi đặt cược rằng nếu khóa được nhập bằng pynput. bàn phím. Chìa khóa. xóa lùi, thao tác sao lưu sẽ được thực hiện và trả lại sẽ được thực hiện để việc tiếp tục mã chức năng không hoạt động. Bây giờ làm thế nào để xóa đầu vào từ bàn điều khiển? . tiêu chuẩn. Nói chính xác, mỗi \b đảo ngược đầu vào một lần, nhưng ký tự không bị xóa sau đó. Vì vậy, chúng tôi đặt một khoảng trắng sau đó để thay thế đầu vào bằng một khoảng trắng sau đó và ký tự bị xóa khỏi chế độ xem của người dùng và chúng tôi quay lại lần nữa với \b một lần như thể có một khoảng trắng trong đầu vào một lần.
Lưu ý rằng nếu bạn muốn hiển thị cho người dùng như mong muốn, người dùng có thể đưa ra một hiển thị nhiều chữ số. Vì vậy, hãy nhân cụm từ '\b \b' với số lượng ký tự hiển thị để không có vấn đề gì.
Xong. Cho đến nay chúng ta có thể nhập và xóa cụm từ đã nhập. Cẩn thận một chút. Nếu chúng tôi nhấn quá nhiều backspace, lời nhắc được in tùy chỉnh cũng sẽ bị xóa. Để ngăn chặn điều này, chúng tôi tạo một biến số gọi là on_char và đặt giá trị của nó thành 0. Đối với mỗi on_press, chúng tôi thêm một số vào biến này. Nhưng chúng tôi đặt cược vào backspace rằng nếu biến này nhỏ hơn hoặc bằng 0, nó sẽ thử lại và chức năng sẽ không chạy. Bằng cách này chúng ta có thể ngăn chặn vấn đề này.
Cho đến nay chúng tôi đã thực hiện một mục hiển thị. Bây giờ chúng tôi muốn nhận các đầu vào của người dùng và lưu chúng vào một biến để khi người dùng nhập phím enter, những đầu vào đã lưu đó sẽ được trả về. Đơn giản chỉ cần tạo một bản thân. value trong lớp init của chúng tôi và đặt khóa. char trong mỗi on_press, tương đương với ký tự chuỗi đầu vào của người dùng và trong trường hợp xóa lùi, bằng cách chuyển đổi ký tự. giá trị vào danh sách và bật ký tự cuối cùng Và tự chuyển đổi. giá trị thành chuỗi một lần nữa bằng cách sử dụng tham gia, xóa các chữ cái cuối cùng.
Lưu ý phần này hãy thử và except vì có thể nhập các khóa phân cách không có giá trị char nên nếu except thì thực hiện return đơn giản.
Đối với khi người dùng nhập phím enter, vì chúng tôi đã bật trình nghe theo phương thức nối và chúng tôi không thể đơn giản dừng trình nghe, vì vậy chúng tôi khởi động trình nghe trong quạt và bật_press trong cùng một chức năng. Chúng tôi đặt chức năng đó ở chế độ riêng tư trong init để người dùng không thể sử dụng nó.
Vấn đề với pynput là khi chúng ta nhấn phím Enter, một khi các cụm từ chúng ta đã nhập cho đến nay sẽ được dán và nhập. Để ngăn chặn điều này, nếu người dùng nhập enter, chúng tôi đặt một getpass trống. getpass để nhận đầu vào này một cách không thể nhận thấy.
Sắp xong. Bây giờ hãy gọi hàm chính xác bên dưới init và sau đó trả về giá trị tự. giá trị giá trị trong str. Để tăng cường bảo mật, bạn có thể xóa các biến khác với biến tự. giá trị với del. Các mã của lớp hữu ích này có sẵn ở đây.

Mã số

Chủ Đề