欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python?input輸入超時(shí)選擇默認(rèn)值自動(dòng)跳過(guò)問(wèn)題

 更新時(shí)間:2023年02月21日 14:35:25   作者:weixin_46909456  
這篇文章主要介紹了Python?input輸入超時(shí)選擇默認(rèn)值自動(dòng)跳過(guò)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Python input 等待鍵盤(pán)輸入,超時(shí)選擇默認(rèn)值,釋放input,之后重新進(jìn)入等待鍵盤(pán)輸入狀態(tài),直到用戶輸入可用數(shù)據(jù)。

一、調(diào)用 func_timeout 模塊實(shí)現(xiàn)超時(shí)控制

1、安裝 func_timeout 庫(kù)

pip install func_timeout

2、使用 func_timeout 庫(kù)

func_set_timeout 裝飾器設(shè)置超時(shí)時(shí)間,程序超時(shí)后會(huì)拋出func_timeout.exceptions.FunctionTimedOut異常

import func_timeout

@func_timeout.func_set_timeout(3)  #超時(shí)時(shí)間為 3s
def Input_task():
    print('請(qǐng)輸入:')
    return input()

3、使用 try…except 捕捉異常

def task():
    try:
        s = Input_task()
        print('成功輸入')
    except func_timeout.exceptions.FunctionTimedOut as e:
        s = '默認(rèn)值!'
    print(s)

4、問(wèn)題

下面的代碼中將 task() 函數(shù)放進(jìn) while 循環(huán),出現(xiàn)超時(shí)異常后,手動(dòng)輸入無(wú)效

import func_timeout
from func_timeout import func_set_timeout

timeout = 4
@func_set_timeout(timeout)
def Input_task():
    print('請(qǐng)輸入:')
    return input()

def task():
    try:
        s = Input_task()
        print('成功輸入')
        run_flag = False
    except func_timeout.exceptions.FunctionTimedOut as e:
        s = '默認(rèn)值!'
        run_flag = True
    print(s)
    return run_flag   #如果成功輸入將退出 while 循環(huán)

run_flag = True
while run_flag:
    run_flag = task()

運(yùn)行結(jié)果:

小結(jié):該模塊只能進(jìn)行一次超時(shí)控制,當(dāng)程序第一次拋出超時(shí)異常后,即使用戶輸入數(shù)據(jù)也無(wú)濟(jì)于事

二、使用 Timer 定時(shí)器和模擬鍵盤(pán)輸入實(shí)現(xiàn)超時(shí)控制

1、Timet 定時(shí)器

是Thead類的一個(gè)子類,可用于在指定時(shí)間間隔后啟動(dòng)線程

# 導(dǎo)入線程模塊
import threading
 
timer = threading.Timer(interval, function, args=None, kwargs=None)

參數(shù)介紹:

  • interval — 定時(shí)器間隔,間隔多少秒之后啟動(dòng)定時(shí)器任務(wù)(單位:秒);
  • function — 線程函數(shù);
  • args — 線程參數(shù),可以傳遞元組類型數(shù)據(jù),默認(rèn)為空(缺省參數(shù));
  • kwargs — 線程參數(shù),可以傳遞字典類型數(shù)據(jù),默認(rèn)為空(缺省參數(shù))

2、模擬鍵盤(pán)輸入

(1) PyUserInput模塊安裝

pip install PyUserInput

python3.5的PyMouse和PyKeyboard模塊都集成到了PyUserInput模塊中

(2) 鍵盤(pán)實(shí)例化

from pykeyboard import PyKeyboard

k = PyKeyboard()#鍵盤(pán)的實(shí)例 k

(3) 鍵盤(pán)操作說(shuō)明

單個(gè)按鍵

k.type_string(‘Hello, World!')	#模擬鍵盤(pán)輸入字符串
k.press_key(‘H')	#模擬鍵盤(pán)按H鍵
k.release_key(‘H')	#模擬鍵盤(pán)松開(kāi)H鍵
k.tap_key(“H”)	#模擬點(diǎn)擊H鍵
k.tap_key(‘H',n=2,interval=5)	#模擬點(diǎn)擊H鍵,2次,每次間隔5秒
k.tap_key(k.function_keys[5])	#點(diǎn)擊功能鍵F5
k.tap_key(k.numpad_keys[5],3)	#點(diǎn)擊小鍵盤(pán)5,3次

組合鍵(例如同時(shí)按alt+tab鍵盤(pán) )

k.press_key(k.alt_key)	#按住alt鍵
k.tap_key(k.tab_key)	#點(diǎn)擊tab鍵
k.release_key(k.alt_key)	#松開(kāi)alt鍵

3、代碼實(shí)現(xiàn)

from pykeyboard import PyKeyboard
import threading

def Input_simulate(timeout):
    if not Input_event.is_set():    
        key = PyKeyboard()#鍵盤(pán)的實(shí)例 key
        key.type_string('no input')  #模擬鍵盤(pán)輸入字符串
        key.press_key(key.enter_key)  #模擬按下 ENTER 鍵
        key.release_key(key.enter_key)  #模擬釋放 ENTER 鍵

    global timer  #將定時(shí)器的句柄定義成一個(gè)全局變量,這樣做的好處是,創(chuàng)建的定時(shí)器進(jìn)程和實(shí)例不會(huì)堆積,而是覆蓋,避免不必要的內(nèi)存占用。
    Input_event.clear()
    timer = threading.Timer(timeout, Input_simulate, args=(timeout,))
    timer.start()
    msg = input('請(qǐng)輸入你的信息:')
    if msg == 'no input':
        pass
    else:
        print(msg)    #打印輸入信息
        timer.cancel()  #取消定時(shí)器的調(diào)度,當(dāng)用戶輸入數(shù)據(jù)時(shí)將停止計(jì)時(shí),程序退出運(yùn)行

if __name__ == '__main__':
    Input_event = threading.Event()
    Input_event.set()
    Input_simulate(5)

運(yùn)行結(jié)果:

小結(jié):該代碼等待鍵盤(pán)輸入,超時(shí)選擇默認(rèn)值,釋放input,之后重新進(jìn)入等待鍵盤(pán)輸入狀態(tài),直到用戶輸入可用數(shù)據(jù)。

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python實(shí)時(shí)獲取cmd的輸出

    Python實(shí)時(shí)獲取cmd的輸出

    本文給大家分享python實(shí)時(shí)獲取cmd的輸出,對(duì)python實(shí)時(shí)獲取輸出相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧
    2015-12-12
  • python中Tkinter復(fù)選框Checkbutton是否被選中判斷

    python中Tkinter復(fù)選框Checkbutton是否被選中判斷

    這篇文章主要介紹了python中Tkinter復(fù)選框Checkbutton是否被選中判斷方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • python添加列表元素append(),extend()及?insert()

    python添加列表元素append(),extend()及?insert()

    這篇文章主要介紹了python添加列表元素append(),extend()及?insert(),列表是儲(chǔ)存元素的數(shù)據(jù)類型,既然能存儲(chǔ)元素,那么就類似數(shù)據(jù)庫(kù)一樣,增刪改查的一些功能就不能少了。下面我們就來(lái)先看看添加列表元素方法有哪些,需要的朋友可以參考一下
    2022-03-03
  • Python檢測(cè)端口IP字符串是否合法

    Python檢測(cè)端口IP字符串是否合法

    這篇文章主要介紹了Python檢測(cè)端口IP字符串是否合法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Pytorch BertModel的使用說(shuō)明

    Pytorch BertModel的使用說(shuō)明

    這篇文章主要介紹了Pytorch BertModel的使用說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • python圖形界面tkinter的使用技巧

    python圖形界面tkinter的使用技巧

    這篇文章主要介紹了python圖形界面tkinter的使用技巧,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • Python使用BeautifulSoup爬取網(wǎng)頁(yè)數(shù)據(jù)的操作步驟

    Python使用BeautifulSoup爬取網(wǎng)頁(yè)數(shù)據(jù)的操作步驟

    在網(wǎng)絡(luò)時(shí)代,數(shù)據(jù)是最寶貴的資源之一,而爬蟲(chóng)技術(shù)就是一種獲取數(shù)據(jù)的重要手段,Python 作為一門(mén)高效、易學(xué)、易用的編程語(yǔ)言,自然成為了爬蟲(chóng)技術(shù)的首選語(yǔ)言之一,本文將介紹如何使用 BeautifulSoup 爬取網(wǎng)頁(yè)數(shù)據(jù),并提供詳細(xì)的代碼和注釋,幫助讀者快速上手
    2023-11-11
  • python 動(dòng)態(tài)繪制愛(ài)心的示例

    python 動(dòng)態(tài)繪制愛(ài)心的示例

    這篇文章主要介紹了python 動(dòng)態(tài)繪制愛(ài)心的示例,幫助大家利用python繪制圖像,感興趣的朋友可以了解下
    2020-09-09
  • 用Python實(shí)現(xiàn)爬取百度熱搜信息

    用Python實(shí)現(xiàn)爬取百度熱搜信息

    大家好,本篇文章主要講的是用Python實(shí)現(xiàn)爬取百度熱搜信息,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-01-01
  • SQLite5-使用Python來(lái)讀寫(xiě)數(shù)據(jù)庫(kù)

    SQLite5-使用Python來(lái)讀寫(xiě)數(shù)據(jù)庫(kù)

    這篇文章主要介紹了SQLite5-使用Python來(lái)讀寫(xiě)數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)的實(shí)際應(yīng)用,通常需要與程序結(jié)合起來(lái),通過(guò)程序來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)和讀寫(xiě)。本篇先介紹Python語(yǔ)言來(lái)調(diào)用SQLite數(shù)據(jù)庫(kù),想具體了解的小伙伴可以參考一下</P><P>
    2021-12-12

最新評(píng)論