監聽使用者退出程式,你的做法是青銅還是王者?

2021-10-11 13:45:29 字數 1470 閱讀 7961

大家在寫python指令碼時,經常會遇到使用者互動的場景,然而其中不可或缺的一步就是告訴使用者,輸入某某鍵退出...那麼,今天就來盤點下,有哪些實現退出場景的方式吧。

青銅級別

# 青銅

import sys

user_input = input("輸入q,退出程式")

if user_input == 'q':

sys.exit()

使用input來判斷使用者輸入的方式,應該是最low的了吧?不僅需要輸入,還需要使用者敲擊回車,才能夠完成引數獲取...適合python入門一周的小選手。

**級別

# **

import msvcrt

user_input = msvcrt.getche()

if user_input.decode() == 'q':

exit()

msvcrt模組允許您訪問microsoft visual c / c ++執行時庫(msvcrt)中的許多函式,可以動態監聽單個char字元,然後返回byte位元組。所以當你的退出不是單個字元,而是字串時,還需要進一步封裝...

# 王者

import msvcrt

quit_command = 'quit'

listening_str = ''

while true:

user_input = msvcrt.getche()

if isinstance(user_input, bytes):

user_input = user_input.decode()

if user_input == '\b':

listening_str = listening_str[:-1]

elif user_input in ['\n', '\r']:

listening_str = ''

else:

listening_str += user_input

print('listening_str now is: %s' % listening_str)

if listening_str == quit_command:

exit()

我們通過乙個while迴圈實時監控使用者的輸入,當使用者回車時,清空字串快取。並且支援了使用者的刪除退格操作操作。相比於前兩者僅支援單次判定更提公升了功能。來看看下圖的測試示例:

程式展示

讓我們通過上圖看下效果,簡單執行幾個場景的用例測試,均滿足要求。有涉及到的使用者退出監聽的朋友們,快去感受下吧...

tips:所有的使用者監聽操作,都不能直接在pycharm下使用,會存在衝突,因為軟體本身就是監聽使用者的一種哦...

the end

你是你產品的頭號使用者

編者按 設計師 jared erondu 和他的團隊正在做乙個 ipad 郵件客戶端叫 evomail 原本是這個月 20 號前會發布的,但後來跳票了 他在這篇文章裡分享了他在做這個產品時的感悟。過去幾個月我們都忙於 evomail,是個 ipad 上的郵件客戶端,幾周後就發布。這段時間我在設計整個...

Linux 使用者退出後,使用者程式後台執行的方法介紹

nohup mono hello.exe dev null 綠色區域表示啟動程序的命令當使用shell時,在命令前面加上nohup可以阻止當使用者登出或退出shell後的命令自動終止 nohup表示 no hangup hangup hup 訊號通常會被傳送給程序以通知它使用者已經退出了。但是noh...

你是如何保護使用者的密碼的?

只要有會員系統的 就會涉及到密碼,如果處理不好就會造成前陣子那種事。下面我就說說我在開發時是如何處理密碼這塊功能的。首先,密碼必須加密,但簡單的md5加密已經沒有太大意義,為了防止字典破解,我會給密碼加鹽後在md5,我一般是用使用者自己的密碼當鹽。這一步操作後基本上就不怕資料庫暴露了,接下來要做的就...