當前位置:首頁 » 編程語言 » python延時函數

python延時函數

發布時間: 2022-08-25 02:28:03

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 是用來定義函數的一個關鍵字,只有在函數的定義時用到他。Python 函數定義的語法:

def 函數明(參數列表):
函數體

注意,Python 的函數無需顯示聲明他的返回值類型,實際上默認返回 None,當遇到 return 時自動返回。

return 是返回的意思,也就是代碼執行遇到 return 時,便不在執行下去了。用到的情況主要有:
1、要向函數調用者返回一個結果,例如:

def add(a, b):
return a + b # 這里將 a + b 的結果返回給函數調用者

2、某條件不成立,終止執行,例如:

def func(*arg):
if (len(arg) == 0) : #這里判斷,如果參數是空的,將終止執行
return
...

至於 print ,就是列印出來一串字元到屏幕上,供你閱讀,你想列印什麼,就可以列印什麼,想什麼時候列印,就什麼時候列印。

❸ python的高級特徵及用法介紹

【導讀】Python 是一種美麗的語言,它簡單易用卻非常強大。任何編程語言的高級特徵通常都是通過大量的使用經驗才發現的。比如你在編寫一個復雜的項目,並在
stackoverflow 上尋找某個問題的答案,然後你突然發現了一個非常優雅的解決方案,它使用了你從不知道的 Python
功能,下面就給大家進行python的高級特徵及用法介紹。

1、Map 函數

Map() 是一種內置的 Python
函數,它可以將函數應用於各種數據結構中的元素,如列表或字典。對於這種運算來說,這是一種非常干凈而且可讀的執行方式。

2、Lambda 函數

Lambda 函數是一種比較小的匿名函數——匿名是指它實際上沒有函數名。

Python 函數通常使用 def a_function_name() 樣式來定義,但對於 lambda 函數,我們根本沒為它命名。這是因為 lambda
函數的功能是執行某種簡單的表達式或運算,而無需完全定義函數。

lambda 函數可以使用任意數量的參數,但表達式只能有一個。

3、Generator 函數

Generator 函數是一個類似迭代器的函數,即它也可以用在 for 循環語句中。這大大簡化了你的代碼,而且相比簡單的 for
循環,它節省了很多內存。

4、Filter 函數

filter 內置函數與 map 函數非常相似,它也將函數應用於序列結構(列表、元組、字典)。二者的關鍵區別在於 filter() 將只返回應用函數返回
True 的元素。

5、Itertools 模塊

Python 的 Itertools 模塊是處理迭代器的工具集合。迭代器是一種可以在 for 循環語句(包括列表、元組和字典)中使用的數據類型。

使用 Itertools 模塊中的函數讓你可以執行很多迭代器操作,這些操作通常需要多行函數和復雜的列表理解。

以上就是python的高級特徵及用法介紹,希望對於大家的python學習能有所幫助,想要學習更多的python高級技能,希望大家持續關注!

❹ python中的函數是什麼

Python3 函數

函數是組織好的,可重復使用的,用來實現單一,或相關聯功能的代碼段。

函數能提高應用的模塊性,和代碼的重復利用率。你已經知道Python提供了許多內建函數,比如print()。但你也可以自己創建函數,這被叫做用戶自定義函數。

定義一個函數

你可以定義一個由自己想要功能的函數,以下是簡單的規則:

  • 函數代碼塊以def關鍵詞開頭,後接函數標識符名稱和圓括弧()。

  • 任何傳入參數和自變數必須放在圓括弧中間,圓括弧之間可以用於定義參數。

  • 函數的第一行語句可以選擇性地使用文檔字元串—用於存放函數說明。

  • 函數內容以冒號:起始,並且縮進。

  • return [表達式]結束函數,選擇性地返回一個值給調用方,不帶表達式的 return 相當於返回 None。

  • 語法

    Python 定義函數使用 def 關鍵字,一般格式如下:

  • def 函數名(參數列表):

  • 函數體

  • 默認情況下,參數值和參數名稱是按函數聲明中定義的順序匹配起來的。

    實例

    讓我們使用函數來輸出"Hello World!":

    #!/usr/bin/python3

    defhello():
    print("Hello World!")

    hello()

    更復雜點的應用,函數中帶上參數變數:

    實例(Python 3.0+)

    比較兩個數,並返回較大的數:

    #!/usr/bin/python3
    def max(a, b): if a > b: return a
    else: return b
    a = 4b = 5print(max(a, b))

    以上實例輸出結果:

  • 5

  • 實例(Python 3.0+)

    計算面積函數:

    #!/usr/bin/python3
    # 計算面積函數def area(width, height): return width * height
    def print_welcome(name): print("Welcome", name)
    print_welcome("Runoob")w = 4h = 5print("width =", w, " height =", h, " area =", area(w, h))

    以上實例輸出結果:

  • Welcome Runoobwidth = 4 height = 5 area = 20

  • 函數調用

    定義一個函數:給了函數一個名稱,指定了函數里包含的參數,和代碼塊結構。

    這個函數的基本結構完成以後,你可以通過另一個函數調用執行,也可以直接從 Python 命令提示符執行。

    如下實例調用了printme()函數:

    實例(Python 3.0+)

    #!/usr/bin/python3
    # 定義函數def printme( str ): # 列印任何傳入的字元串
    print (str)
    return
    # 調用函數printme("我要調用用戶自定義函數!")printme("再次調用同一函數")

    以上實例輸出結果:

  • 我要調用用戶自定義函數!再次調用同一函數

  • 參數傳遞

    在 python 中,類型屬於對象,變數是沒有類型的:

  • a=[1,2,3]a="Runoob"

  • 以上代碼中,[1,2,3]是 List 類型,"Runoob"是 String 類型,而變數 a 是沒有類型,她僅僅是一個對象的引用(一個指針),可以是指向 List 類型對象,也可以是指向 String 類型對象。

    可更改(mutable)與不可更改(immutable)對象

    在 python 中,strings, tuples, 和 numbers 是不可更改的對象,而 list,dict 等則是可以修改的對象。

  • 不可變類型:變數賦值a=5後再賦值a=10,這里實際是新生成一個 int 值對象 10,再讓 a 指向它,而 5 被丟棄,不是改變 a 的值,相當於新生成了 a。

  • 可變類型:變數賦值la=[1,2,3,4]後再賦值la[2]=5則是將 list la 的第三個元素值更改,本身la沒有動,只是其內部的一部分值被修改了。

  • python 函數的參數傳遞:

  • 不可變類型:類似 C++ 的值傳遞,如 整數、字元串、元組。如 fun(a),傳遞的只是 a 的值,沒有影響 a 對象本身。如果在 fun(a))內部修改 a 的值,則是新生成來一個 a。

  • 可變類型:類似 C++ 的引用傳遞,如 列表,字典。如 fun(la),則是將 la 真正的傳過去,修改後 fun 外部的 la 也會受影響

  • python 中一切都是對象,嚴格意義我們不能說值傳遞還是引用傳遞,我們應該說傳不可變對象和傳可變對象。

    python 傳不可變對象實例

    通過id()函數來查看內存地址變化:

    實例(Python 3.0+)

    def change(a): print(id(a)) # 指向的是同一個對象
    a=10
    print(id(a)) # 一個新對象
    a=1print(id(a))change(a)

    以上實例輸出結果為:


  • 可以看見在調用函數前後,形參和實參指向的是同一個對象(對象 id 相同),在函數內部修改形參後,形參指向的是不同的 id。

    傳可變對象實例

    可變對象在函數里修改了參數,那麼在調用這個函數的函數里,原始的參數也被改變了。例如:

    實例(Python 3.0+)

    #!/usr/bin/python3
    # 可寫函數說明def changeme( mylist ): "修改傳入的列表"
    mylist.append([1,2,3,4])
    print ("函數內取值: ", mylist)
    return
    # 調用changeme函數mylist = [10,20,30]changeme( mylist )print ("函數外取值: ", mylist)

    傳入函數的和在末尾添加新內容的對象用的是同一個引用。故輸出結果如下:

  • 函數內取值: [10, 20, 30, [1, 2, 3, 4]]函數外取值: [10, 20, 30, [1, 2, 3, 4]]

  • 參數

    以下是調用函數時可使用的正式參數類型:

  • 必需參數

  • 關鍵字參數

  • 默認參數

  • 不定長參數

  • 必需參數

    必需參數須以正確的順序傳入函數。調用時的數量必須和聲明時的一樣。

    調用 printme() 函數,你必須傳入一個參數,不然會出現語法錯誤:

    實例(Python 3.0+)

    #!/usr/bin/python3
    #可寫函數說明def printme( str ): "列印任何傳入的字元串"
    print (str)
    return
    # 調用 printme 函數,不加參數會報錯printme()

    以上實例輸出結果:

  • Traceback (most recent call last):

  • File "test.py", line 10, in <mole>

  • printme()TypeError: printme() missing 1 required positional argument: 'str'

  • 關鍵字參數

    關鍵字參數和函數調用關系緊密,函數調用使用關鍵字參數來確定傳入的參數值。

    使用關鍵字參數允許函數調用時參數的順序與聲明時不一致,因為 Python 解釋器能夠用參數名匹配參數值。

    以下實例在函數 printme() 調用時使用參數名:

    實例(Python 3.0+)

    #!/usr/bin/python3
    #可寫函數說明def printme( str ): "列印任何傳入的字元串"
    print (str)
    return
    #調用printme函數printme( str = "菜鳥教程")

    以上實例輸出結果:

  • 菜鳥教程

  • 以下實例中演示了函數參數的使用不需要使用指定順序:

    實例(Python 3.0+)

    #!/usr/bin/python3
    #可寫函數說明def printinfo( name, age ): "列印任何傳入的字元串"
    print ("名字: ", name)
    print ("年齡: ", age)
    return
    #調用printinfo函數printinfo( age=50, name="runoob" )

    以上實例輸出結果:

  • 名字: runoob年齡: 50

  • 默認參數

    調用函數時,如果沒有傳遞參數,則會使用默認參數。以下實例中如果沒有傳入 age 參數,則使用默認值:

    實例(Python 3.0+)

    #!/usr/bin/python3
    #可寫函數說明def printinfo( name, age = 35 ): "列印任何傳入的字元串"
    print ("名字: ", name)
    print ("年齡: ", age)
    return
    #調用printinfo函數printinfo( age=50, name="runoob" )print ("------------------------")printinfo( name="runoob" )

    以上實例輸出結果:

  • 名字: runoob年齡: 50------------------------名字: runoob年齡: 35

  • 不定長參數

    你可能需要一個函數能處理比當初聲明時更多的參數。這些參數叫做不定長參數,和上述 2 種參數不同,聲明時不會命名。基本語法如下:

  • def functionname([formal_args,] *var_args_tuple ):

  • "函數_文檔字元串"

  • function_suite return [expression]

  • 加了星號*的參數會以元組(tuple)的形式導入,存放所有未命名的變數參數。

    實例(Python 3.0+)

    #!/usr/bin/python3
    # 可寫函數說明def printinfo( arg1, *vartuple ): "列印任何傳入的參數"
    print ("輸出: ")
    print (arg1)
    print (vartuple)
    # 調用printinfo 函數printinfo( 70, 60, 50 )

    以上實例輸出結果:

  • 輸出: 70(60, 50)

  • 如果在函數調用時沒有指定參數,它就是一個空元組。我們也可以不向函數傳遞未命名的變數。如下實例:
  • 實例(Python 3.0+)

    #!/usr/bin/python3
    # 可寫函數說明def printinfo( arg1, *vartuple ): "列印任何傳入的參數"
    print ("輸出: ")
    print (arg1)
    for var in vartuple: print (var)
    return
    # 調用printinfo 函數printinfo( 10 )printinfo( 70, 60, 50 )

    以上實例輸出結果:

  • 輸出:10輸出:706050

  • 還有一種就是參數帶兩個星號**基本語法如下:

  • def functionname([formal_args,] **var_args_dict ):

  • "函數_文檔字元串"

  • function_suite return [expression]

  • 加了兩個星號**的參數會以字典的形式導入。

    實例(Python 3.0+)

    #!/usr/bin/python3
    # 可寫函數說明def printinfo( arg1, **vardict ): "列印任何傳入的參數"
    print ("輸出: ")
    print (arg1)
    print (vardict)
    # 調用printinfo 函數printinfo(1, a=2,b=3)

    以上實例輸出結果:

  • 輸出: 1{'a': 2, 'b': 3}

  • 聲明函數時,參數中星號*可以單獨出現,例如:

  • def f(a,b,*,c):

  • return a+b+c

  • 如果單獨出現星號*後的參數必須用關鍵字傳入。

  • >>> def f(a,b,*,c):... return a+b+c... >>> f(1,2,3) # 報錯Traceback (most recent call last):

  • File "<stdin>", line 1, in <mole>TypeError: f() takes 2 positional arguments but 3 were given>>> f(1,2,c=3) # 正常6>>>

  • 匿名函數

    python 使用 lambda 來創建匿名函數。

    所謂匿名,意即不再使用 def 語句這樣標準的形式定義一個函數。

  • lambda 只是一個表達式,函數體比 def 簡單很多。

  • lambda的主體是一個表達式,而不是一個代碼塊。僅僅能在lambda表達式中封裝有限的邏輯進去。

  • lambda 函數擁有自己的命名空間,且不能訪問自己參數列表之外或全局命名空間里的參數。

  • 雖然lambda函數看起來只能寫一行,卻不等同於C或C++的內聯函數,後者的目的是調用小函數時不佔用棧內存從而增加運行效率。

  • 語法

    lambda 函數的語法只包含一個語句,如下:

  • lambda [arg1 [,arg2,.....argn]]:expression

  • 如下實例:

    實例(Python 3.0+)

    #!/usr/bin/python3
    # 可寫函數說明sum = lambda arg1, arg2: arg1 + arg2
    # 調用sum函數print ("相加後的值為 : ", sum( 10, 20 ))print ("相加後的值為 : ", sum( 20, 20 ))

    以上實例輸出結果:

  • 相加後的值為 : 30相加後的值為 : 40

  • return語句

    return [表達式]語句用於退出函數,選擇性地向調用方返回一個表達式。不帶參數值的return語句返回None。之前的例子都沒有示範如何返回數值,以下實例演示了 return 語句的用法:

    實例(Python 3.0+)

    #!/usr/bin/python3
    # 可寫函數說明def sum( arg1, arg2 ): # 返回2個參數的和."
    total = arg1 + arg2
    print ("函數內 : ", total)
    return total
    # 調用sum函數total = sum( 10, 20 )print ("函數外 : ", total)

    以上實例輸出結果:

  • 函數內 : 30函數外 : 30

  • 強制位置參數

    Python3.8 新增了一個函數形參語法 / 用來指明函數形參必須使用指定位置參數,不能使用關鍵字參數的形式。

  • 在以下的例子中,形參 a 和 b 必須使用指定位置參數,c 或 d 可以是位置形參或關鍵字形參,而 e 或 f 要求為關鍵字形參:def f(a, b, /, c, d, *, e, f):

  • print(a, b, c, d, e, f)

  • 以下使用方法是正確的:

  • f(10, 20, 30, d=40, e=50, f=60)

  • 以下使用方法會發生錯誤:

  • f(10, b=20, c=30, d=40, e=50, f=60) # b 不能使用關鍵字參數的形式f(10, 20, 30, 40, 50, f=60) # e 必須使用關鍵字參數的形式

❺ python如何微秒級延時

Python中的sleep函數可以傳小數進去,就可以進行毫秒級的延時了,代碼如下:

#例1:循環輸出休眠1秒
importtime
i=1
whilei&lt;=3:
printi#輸出i
i+=1
time.sleep(1)#休眠1秒

#例2:循環輸出休眠100毫秒
importtime
i=1
whilei&lt;=3:
printi#輸出i
i+=1
time.sleep(0.1)#休眠0.1秒

❻ python里有沒有等待一定時間的函數

import time

time.sleep(1)
time 模塊的sleep可以等待若干秒

❼ python中from time import sleep是什麼意思

from time import sleep就是從time模塊中引入sleep函數,使用sleep函數可以讓程序休眠(推遲調用線程的運行)。

具體方法:

1,sleep(時間)。

2,#如果之前引入了time模塊,使用time.sleep(時間)語句即可,不需要import這個語句。

3,#具體用法見下其中「時間」以秒為單位,可以是小數,0.1秒則代表休眠100毫秒。


(7)python延時函數擴展閱讀:

使用Python編程時的注意事項:

1,初始變化量:

在Python里,一個表達式中的名字在它被賦值之前是沒法使用的。這是有意而為的:這樣能避免一些輸入失誤,同時也能避免默認究竟應該是什麼類型的問題(0,None,」」,[],?)。記住把計數器初始化為0,列表初始化為[],以此類推。

2,從第一列開始:

確保把頂層的,未嵌套的代碼放在最左邊第一列開始。這包括在模塊文件中未嵌套的代碼,以及在交互提示符中未嵌套的代碼。Python使用縮進的辦法來區分嵌套的代碼段,因此在代碼左邊的空格意味著嵌套的代碼塊。除了縮進以外,空格通常是被忽略掉的。

3,縮進一致:

在同一個代碼塊中避免講tab和空格混用來縮進,除非知道運行自己的代碼的系統是怎麼處理tab的。否則的話,在自己的編輯器里看起來是tab的縮進也許Python看起來就會被視作是一些空格。保險起見,在每個代碼塊中全都是用tab或者全都是用空格來縮進;用多少由自己決定。

4,在函數調用時使用括弧:

無論一個函數是否需要參數,必須要加一對括弧來調用它。即,使用function(),而不是function。Python的函數簡單來說是具有特殊功能的對象,而調用是用括弧來觸發的。像所有的對象一樣,它們也可以被賦值給變數,並且間接的使用它們:x=function:x()。

❽ python有多少內置函數

Python內置函數有很多,為大家推薦5個神仙級的內置函數:

(1)Lambda函數

用於創建匿名函數,即沒有名稱的函數。它只是一個表達式,函數體比def簡單很多。當我們需要創建一個函數來執行單個操作並且可以在一行中編寫時,就可以用到匿名函數了。

Lamdba的主體是一個表達式,而不是一個代碼塊。僅僅能在lambda表達式中封裝有限的邏輯進去。

利用Lamdba函數,往往可以將代碼簡化許多。

(2)Map函數

會將一個函數映射到一個輸入列表的所有元素上,比如我們先創建了一個函數來返回一個大寫的輸入單詞,然後將此函數應有到列表colors中的所有元素。

我們還可以使用匿名函數lamdba來配合map函數,這樣可以更加精簡。

(3)Rece函數

當需要對一個列表進行一些計算並返回結果時,rece()是個非常有用的函數。舉個例子,當需要計算一個整數列表所有元素的乘積時,即可使用rece函數實現。

它與函數的最大的區別就是,rece()里的映射函數(function)接收兩個參數,而map接收一個參數。

(4)enumerate函數

用於將一個可遍歷的數據對象(如列表、元組或字元串)組合為一個索引序列,同時列出數據和數據下標,一般用在for循環當中。

它的兩個參數,一個是序列、迭代器或其他支持迭代對象;另一個是下標起始位置,默認情況從0開始,也可以自定義計數器的起始編號。

(5)Zip函數

用於將可迭代的對象作為參數,將對象中對應的元素打包成一個個元組,然後返回由這些元組組成的列表

當我們使用zip()函數時,如果各個迭代器的元素個數不一致,則返回列表長度與最短的對象相同。

❾ python如何微秒級延時

python中的最小時間單位是毫秒,沒辦法精確到微秒
用time包的time()函數可以獲得當前計算機的掛鍾時間,利用它可以獲得時間差
import time
time1 = time.time()
#要度量時間的程序
time2 = time.time()
print time2 - time1

熱點內容
sql幾點 發布:2025-01-17 23:08:42 瀏覽:350
扣扣密碼是多少 發布:2025-01-17 23:02:57 瀏覽:646
易柚和安卓手機哪個好 發布:2025-01-17 23:02:14 瀏覽:583
linux切換root用戶 發布:2025-01-17 22:50:27 瀏覽:534
速賣通演算法 發布:2025-01-17 22:42:12 瀏覽:444
編譯中標題翻譯的特點 發布:2025-01-17 22:42:07 瀏覽:439
oppok7x激活密碼是多少 發布:2025-01-17 22:41:02 瀏覽:222
按鍵精靈腳本自動交易分解 發布:2025-01-17 22:30:33 瀏覽:14
如何恢復安卓60 發布:2025-01-17 22:27:07 瀏覽:439
正版秒贊源碼 發布:2025-01-17 22:25:09 瀏覽:989