當前位置:首頁 » 編程語言 » python執行函數

python執行函數

發布時間: 2022-05-23 04:12:19

python 執行函數長時間不打日誌,檢測是否還在運行

pyhon的一個函數在執行I/O參數比如文件讀寫,socket正在等待數據時是不能幹其他事情的,包括打日誌。如果想讓一個文件准備好讀寫了或者一個socket有數據可以直接接收時讓操作系統通知程序的話,可以試試select庫

⑵ python所有內置函數的定義詳解

1、定義函數

函數是可重用的程序。本書中已經使用了許多內建函數,如len()函數和range()函數,但是還沒自定義過函數。定義函數的語法格式如下:

def 函數名(參數):

函數體

定義函數的規則如下:

①關鍵字def用來定義一個函數,它是define的縮寫。

②函數名是函數的唯一標識,函數名的命名規則遵循標識符的命名規則。

③函數名後面一定要緊跟著一個括弧,括弧內的參數是可選的,括弧後面要有冒號。

④函數體(statement)為一個或一組Python語句,注意要有縮進。

⑤函數體的第一行可以有文檔字元串,用於描述函數的功能,用三引號括起來。

按照定義規則,可以定義第一個函數了:

  • >>>defhello_world():

  • ...print('Hello,world!')#注意函數體要有縮進

  • ...

  • >>>hello_world()

  • Hello,world!

  • 這個函數不帶任何參數,它的功能是列印出「Hello,world!」。最後一行代碼hello_world()是調用函數,即讓Python執行函數的代碼。

    2、全局變數和局部變數

    全局變數是定義在所有函數外的變數。例如,定義一個全局變數a,分別在函數test1()和test2()使用變數a:

  • >>>a=100#全局變數

  • >>>deftest1():

  • ...print(a)

  • ...

  • >>>deftest2():

  • ...print(a)

  • ...

  • >>>test1()

  • 100

  • >>>test2()

  • 100

  • 定義了全局變數a之後,在函數test1()和test2()內都可以使用變數a,由此可知,全局變數的作用范圍是全局。

    局部變數是在函數內定義的變數,除了用關鍵字global修飾的變數以外。例如,在函數test1()內定義一個局部變數a,分別在函數外和另一個函數test2()內使用變數a:

  • >>>deftest1():

  • ...a=100#局部變數

  • ...print(a)

  • ...

  • >>>deftest2():

  • ...print(a)

  • ...

  • >>>test1()

  • 100

  • >>>print(a)

  • Traceback(mostrecentcalllast):

  • File"<stdin>",line1,in<mole>

  • NameError:name'a'isnotdefined

  • >>>test2()

  • Traceback(mostrecentcalllast):

  • File"<stdin>",line1,in<mole>

  • File"<stdin>",line2,intest2

  • NameError:name'a'isnotdefined

  • Python解釋器提示出錯了。由於局部變數a定義在函數test1()內,因此,在函數test1()內可以使用變數a,但是在函數外或者另一個函數test2()內使用變數a,都會報錯,由此可見,局部變數的作用范圍是定義它的函數內部。

    一般情況下,在函數內聲明的變數都是局部變數,但是採用關鍵字global修飾的變數卻是全局變數:

  • >>>deftest1():

  • ...globala#全局變數

  • ...a=100

  • ...print(a)

  • ...

  • >>>deftest2():

  • ...print(a)

  • ...

  • >>>test1()

  • 100

  • >>>print(a)

  • 100

  • >>>test2()

  • 100

  • 這個程序與上個程序相比,只是在函數test1()中多了一行代碼「global a」,程序便可以正確運行了。在函數test1()中,採用關鍵字global修飾了變數a之後,變數a就變成了全局變數,不僅可以在該函數內使用,還可以在函數外或者其他函數內使用。

    如果在某個函數內局部變數與全局變數同名,那麼在該函數中局部變數會覆蓋全局變數:

  • >>>a=100#全局變數

  • >>>deftest1():

  • ...a=200#同名局部變數

  • ...print(a)

  • ...

  • >>>deftest2():

  • ...print(a)

  • ...

  • >>>test1()

  • 200

  • >>>test2()

  • 100

  • 由於在函數test1()中定義了一個與全局變數同名的局部變數a,因此,在函數test1()中全局變數a的值被局部變數覆蓋了,但是在函數test2()中全局變數a的值沒有被覆蓋。

    綜上所述,在Python中,全局變數保存的數據供整個腳本文件使用;而局部變數只用於臨時保存數據,變數僅供局部代碼塊使用。

⑶ python如何定義和調用函數

自定義函數用
def 函數名(參數):
(縮進)寫具體的函數部分,和寫普通程序一樣,只不過用return來返回需要的結果。
主程序裡面和使用普通內置函數一樣,函數名(參數)。

⑷ python 怎麼根據參數執行不同的函數

使用字典,比如下面這樣:

1
2
3
4
5
6
7
8
9
10
11
12
13

def funcA():
pass

def funcB():
pass

def func_None():
print "cannot find func"

func_dict = {"a": funcA, "b": funcB}

def func(x):
return func_dict.get(x, func_None)()

在有switch的語言中,一般都是使用switch來根據入參進行判斷。但是python中沒有switch,因為根本不需要!!使用字典代替switch,性能更高,而且這種方法的表述能力更強一點。
另外func_dict.get(x, func_None)()中方法是從字典中取出值對應的函數對象,然後後面加上()是執行該對象的__call__方法。因為python中函數就是實現了__call__方法的對象。所以可以這么使用。

⑸ 為什麼python的函數沒被調用就被執行了

因為你引用了其他模塊的函數,但是該模塊裡面有不是包含在函數中的代碼,你在引用該模塊中的函數時候會先執行被引用模塊的代碼。例如:
a.py裡面有 a = 10
print(a)
def test():
print(a)
然後你在b.py 文件中引入了test函數 :from a import test
test() 執行的順序就是 先執行 a = 10 ,print(a) ,test() 執行b.py中的代碼的時候從from 那一句開始所以a 中的代碼也被執行了

⑹ 如何實現python 條件執行函數,指定時間未執行過則自動執行一次

寫一個類. 類里留個變數(fun2_tiime)記錄函數2執行的時間戳.
類里寫個無限循環的函數, 不斷比較 變數(fun2_tiime)當前時間差值, 如果差值大於20就執行函數2.

⑺ python怎麼單獨運行某個函數

答: 我所知道的有兩種方法。

  1. 第1種方法就是使用Jupyter編寫Python代碼, 把不同的內容編寫在不同的代碼塊裡面,這樣的話我們就可以單獨運行某一個代碼塊,而不需運行整個文件;
  2. 使用Python進行代碼編寫時,將其設置為科學模式,並在函數前面添加#%%標志,然後也可以達到一個一個代碼塊的效果。企業可以單獨運行某一個部分。

希望能夠幫助到你。

⑻ python怎麼調用自己寫的函數

直接在你需要調用的地方寫上函數名字加括弧就可以

⑼ python怎麼實現按照文本順序執行函數

Python讀文本可以用with上下文管理器。根據文本來執行對應名字的函數可以用getatter方法。代碼如下:
首先,新建文本文件test.txt,內容如下:
func1,life is short
func2,use python
func1, hello word

下面是Python代碼,聲明兩個function,功能是列印出傳入的參數。main裡面的把內容就是按照文本的順序,傳入參數執行對應的function:
class Example(object):

def __init__(self):
pass

def func1(self, arg):
print 'this is func1, arg is {}.'.format(arg)

def func2(self, arg):
print 'this is func2, arg is {}.'.format(arg)if __name__ == '__main__':
example_instance = Example()

with open('test.txt', 'r') as f:
for line in f.readlines():
function_name, args = line.strip().split(',')
getattr(example_instance, function_name)(args)

得到這樣的輸出:
this is func1, arg is life is short.
this is func2, arg is use python.
this is func1, arg is hello word.

⑽ python的函數是怎麼執行的

n=0時執行到了for i in range(2,n),這個range是個空列表[],故一次也不會進入for循環執行「 fibs.append(fibs[-1] + fibs[-2])」,,直接返回[1,1],故不報錯

n=1返回[1]

n=2返回[1,1]

n=3及以上,進入for循環,fibs每次增加一個元素,其值為倒數第1個和倒數第2個元素之和

改為if...elif...else可以如下:

deffib(n):
ifn<1:
returnNone
elifn==1:
return[1]
elifn==2:
return[1,1]
else:
fibs=[1,1]
foriinrange(2,n):
fibs.append(fibs[-1]+fibs[-2])
returnfibs
print(fib(10))
熱點內容
c語言中變數類型 發布:2025-02-13 17:52:20 瀏覽:258
ftp導出報錯 發布:2025-02-13 17:41:20 瀏覽:997
腳本下載教程 發布:2025-02-13 17:39:06 瀏覽:235
解壓密碼re 發布:2025-02-13 17:39:02 瀏覽:558
linuxdump內存 發布:2025-02-13 17:37:30 瀏覽:57
游戲客戶端源碼 發布:2025-02-13 17:37:19 瀏覽:594
win7打開文件夾聲音 發布:2025-02-13 17:35:03 瀏覽:606
用php做計算 發布:2025-02-13 17:27:43 瀏覽:447
老編程軟體 發布:2025-02-13 17:27:43 瀏覽:768
看別人解壓 發布:2025-02-13 17:16:17 瀏覽:270