新聞中心
大家在寫Python腳本時(shí),經(jīng)常會(huì)遇到用戶交互的場(chǎng)景,然而其中不可或缺的一步就是告訴用戶,輸入某某鍵退出...那么,今天就來(lái)盤點(diǎn)下,有哪些實(shí)現(xiàn)退出場(chǎng)景的方式吧。

青銅級(jí)別
- # 青銅
- import sys
- user_input = input("輸入q,退出程序")
- if user_input == 'q':
- sys.exit()
使用input來(lái)判斷用戶輸入的方式,應(yīng)該是最low的了吧?不僅需要輸入,還需要用戶敲擊回車,才能夠完成參數(shù)獲取...適合Python入門一周的小選手。
白銀級(jí)別
- # 白銀
- import msvcrt
- user_input = msvcrt.getche()
- if user_input.decode() == 'q':
- exit()
msvcrt模塊允許您訪問(wèn)Microsoft Visual C / C ++運(yùn)行時(shí)庫(kù)(MSVCRT)中的許多函數(shù),可以動(dòng)態(tài)監(jiān)聽(tīng)單個(gè)char字符,然后返回byte字節(jié)。所以當(dāng)你的退出不是單個(gè)字符,而是字符串時(shí),還需要進(jìn)一步封裝...
王者級(jí)別
- # 王者
- 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()
我們通過(guò)一個(gè)while循環(huán)實(shí)時(shí)監(jiān)控用戶的輸入,當(dāng)用戶回車時(shí),清空字符串緩存。并且支持了用戶的刪除退格操作操作。相比于前兩者僅支持單次判定更提升了功能。來(lái)看看下圖的測(cè)試示例:
讓我們通過(guò)上圖看下效果,簡(jiǎn)單執(zhí)行幾個(gè)場(chǎng)景的用例測(cè)試,均滿足要求。有涉及到的用戶退出監(jiān)聽(tīng)的朋友們,快去感受下吧...
Tips:所有的用戶監(jiān)聽(tīng)操作,都不能直接在Pycharm下使用,會(huì)存在沖突,因?yàn)檐浖旧砭褪潜O(jiān)聽(tīng)用戶的一種哦...
分享名稱:提示用戶退出程序,你的做法是青銅還是王者?
標(biāo)題路徑:http://m.5511xx.com/article/cdhphcs.html


咨詢
建站咨詢
