這涉及到變量的生命周期問(wèn)題,一般的,在函數(shù)里面聲明的變量在函數(shù)外是不起作用的。
創(chuàng)新互聯(lián)是一家專業(yè)提供吉林企業(yè)網(wǎng)站建設(shè),專注與做網(wǎng)站、網(wǎng)站建設(shè)、成都h5網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為吉林眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。
一個(gè)比較簡(jiǎn)單的解決辦法是你在函數(shù)外就先聲明這個(gè)變量,聲明成全局變量。然后在函數(shù)里面進(jìn)行操作和賦值。
最后就能在函數(shù)外獲取變量的值了。例如:
123456 x = 0def a(): x = 2if __name__ == '__main__': a() print x
最終x打印出來(lái)的結(jié)果就是2
在實(shí)際應(yīng)用中,我們經(jīng)常需要使用定時(shí)器去觸發(fā)一些事件。Python中通過(guò)線程實(shí)現(xiàn)定時(shí)器timer,其使用非常簡(jiǎn)單??词纠?/p>
一秒后輸出 Hello Timer!
oneshot的定時(shí)器這樣就可以實(shí)現(xiàn)。
如果要實(shí)現(xiàn)cycle的定時(shí)器,則可以:
1s后定時(shí)器啟動(dòng)后,將再次以5.5s為間隔周期性執(zhí)行回調(diào)fun_timer函數(shù)
結(jié)果是:
在使用Python定時(shí)器時(shí)需要注意:
1.定時(shí)器構(gòu)造函數(shù)主要有2個(gè)參數(shù),第一個(gè)參數(shù)為時(shí)間,第二個(gè)參數(shù)為函數(shù)名,第一個(gè)參數(shù)表示多長(zhǎng)時(shí)間后調(diào)用后面第二個(gè)參數(shù)指明的函數(shù)。第二個(gè)參數(shù)注意是函數(shù)對(duì)象,進(jìn)行參數(shù)傳遞,用函數(shù)名(如fun_timer)表示該對(duì)象,不能寫(xiě)成函數(shù)執(zhí)行語(yǔ)句fun_timer(),不然會(huì)報(bào)錯(cuò)。
2.定時(shí)器間隔單位是秒,可以是浮點(diǎn)數(shù),如5.5,0.02等,在執(zhí)行函數(shù)fun_timer內(nèi)部和外部中給的值可以不同。如上例中第一次執(zhí)行fun_timer是1秒后,后面的都是5.5秒后執(zhí)行。
3.可以使用cancel停止定時(shí)器的工作
1、complex()
返回一個(gè)形如?a+bj?的復(fù)數(shù),傳入?yún)?shù)分為三種情況:
參數(shù)為空時(shí),返回0j;參數(shù)為字符串時(shí),將字符串表達(dá)式解釋為復(fù)數(shù)形式并返回;參數(shù)為兩個(gè)整數(shù)(a,b)時(shí),返回?a+bj;參數(shù)只有一個(gè)整數(shù) a 時(shí),虛部 b 默認(rèn)為0,函數(shù)返回?a+0j。
2、dir()
不提供參數(shù)時(shí),返回當(dāng)前本地范圍內(nèi)的名稱列表;提供一個(gè)參數(shù)時(shí),返回該對(duì)象包含的全部屬性。
3、divmod(a,b)
a -- 代表被除數(shù),整數(shù)或浮點(diǎn)數(shù);b -- 代表除數(shù),整數(shù)或浮點(diǎn)數(shù);根據(jù) 除法運(yùn)算 計(jì)算 a,b 之間的商和余數(shù),函數(shù)返回一個(gè)元組(p,q)?,p 代表商?a//b?,q 代表余數(shù)?a%b。
4、enumerate(iterable,start=0)
iterable -- 一個(gè)可迭代對(duì)象,列表、元組序列等;start -- 計(jì)數(shù)索引值,默認(rèn)初始為0‘該函數(shù)返回枚舉對(duì)象是個(gè)迭代器,利用 next() 方法依次返回元素值,每個(gè)元素以元組形式存在,包含一個(gè)計(jì)數(shù)元素(起始為 start )和 iterable 中對(duì)應(yīng)的元素值。
1、函數(shù)定義
①使用def關(guān)鍵字定義函數(shù)
②
def 函數(shù)名(參數(shù)1.參數(shù)2.參數(shù)3...):
"""文檔字符串,docstring,用來(lái)說(shuō)明函數(shù)的作用"""
#函數(shù)體
return 表達(dá)式
注釋的作用:說(shuō)明函數(shù)是做什么的,函數(shù)有什么功能。
③遇到冒號(hào)要縮進(jìn),冒號(hào)后面所有的縮進(jìn)的代碼塊構(gòu)成了函數(shù)體,描述了函數(shù)是做什么的,即函數(shù)的功能是什么。Python函數(shù)的本質(zhì)與數(shù)學(xué)中的函數(shù)的本質(zhì)是一致的。
2、函數(shù)調(diào)用
①函數(shù)必須先定義,才能調(diào)用,否則會(huì)報(bào)錯(cuò)。
②無(wú)參數(shù)時(shí)函數(shù)的調(diào)用:函數(shù)名(),有參數(shù)時(shí)函數(shù)的調(diào)用:函數(shù)名(參數(shù)1.參數(shù)2.……)
③不要在定義函數(shù)的時(shí)候在函數(shù)體里面調(diào)用本身,否則會(huì)出不來(lái),陷入循環(huán)調(diào)用。
④函數(shù)需要調(diào)用函數(shù)體才會(huì)被執(zhí)行,單純的只是定義函數(shù)是不會(huì)被執(zhí)行的。
⑤Debug工具中Step into進(jìn)入到調(diào)用的函數(shù)里,Step Into My Code進(jìn)入到調(diào)用的模塊里函數(shù)。
Python是通過(guò)縮進(jìn)來(lái)進(jìn)行代碼布局的??梢栽O(shè)置幾個(gè)空格來(lái)代表一個(gè)tab,從而來(lái)布局Python函數(shù)的縮進(jìn)。注釋必須跟代碼保持一致,當(dāng)你想修改代碼時(shí),建議優(yōu)點(diǎn)修改注釋。 注釋必須是完整的句子。 如果注釋是一個(gè)句子或者短語(yǔ),請(qǐng)首字母大寫(xiě)。 如果注釋很短,建議省略句末的句號(hào)。 注釋塊通常由一個(gè)或者多個(gè)由完整句子構(gòu)成的段落組成,每個(gè)句子應(yīng)該以句號(hào)結(jié)尾。 注釋請(qǐng)使用英文。 約定使用統(tǒng)一的文檔化注釋格式有助于良好的習(xí)慣和團(tuán)隊(duì)的進(jìn)步。