九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Python基礎【函數】

函數

函數是組織好的,可重復使用的,用來實現單一,或相關聯功能的代碼段。
函數能提高應用的模塊性,和代碼的重復利用率。
可以根據自己的需求自行封裝代碼塊,以便于調用。即為自定義函數。


函數定義的規(guī)則

  • 函數代碼塊以 def 關鍵詞開頭,后接函數標識符名稱和圓括號 ()。
  • 任何傳入參數和自變量必須放在圓括號中間,圓括號之間可以用于定義參數。
  • 函數的第一行語句可以選擇性地使用文檔字符串—用于存放函數說明。 - 函數內容以冒號起始,并且縮進。
  • return [表達式] 結束函數,選擇性地返回一個值給調用方。
  • 不帶表達式的return相當于返回 None。

    格式:

    > def 函數名(參數列表):
    函數體

    默認情況下,參數值和參數名稱是按函數聲明中定義的順序匹配起來。
    無需傳遞參數時,也可不加參數


實例:

def hello(): ##def空格后加函數名hello和()
print('hello world') ##函數內部輸出'hello world'
hello() ##調用定義好的函數

測試結果:


參數的傳遞

在 python 中,類型屬于對象,變量是沒有類型的:
可更改(mutable)與不可更改(immutable)對象
不可更改的對象:strings, tuples,numbers
可以修改的對象:list,dict

  • 在傳遞可變對象時,函數內部對參量的改變會影響該對象
  • 在傳遞不可變對象時,函數內部對參數的改變對該對象本身無影響

實例:

def fun(a,b): ##定義函數fun
a = 'test' ##修改參數a的值
b[2] = 'test' ##修改參數b中的值
num = 'str' ##定義數值類型(不可變)
list_test = [2,3,4] ##定義列表類型(可變)
print(num,list_test) ##輸出傳遞參數之前的值
fun(num,list_test) ##調用函數
print(num,list_test) ##輸出傳遞參數之后的值

測試結果:


參數類型

  • 必需參數(位置參數):
    調用函數時,參數必須按照順序和對應數量傳入。
    def fun(num,age,score):函數體fun(1,18,98)     ##調用時按照順序且數量相同
  • 關鍵字參數:
    調用函數可以不按照函數聲明的順序,關鍵字參數來確定傳入的參數值。
    def fun(num,age,score):函數體fun(age=18,score=98,num=1)
  • 默認參數:
    在函數聲明時為形參設定默認值,調用函數未傳入參數時使用默認參數。
    def fun(num=1,age=18):函數體fun()  ##未傳參數時使用函數定義時的默認參數
  • 不定長參數:
    函數傳入參數值不定時,將多余的參數以元組形式封裝。
    def fun(*num):函數體fun('hello','1','2')  ##實參數超過形參數,其余參數以元組形式封裝,在函數中用num調用```

def fun(**num): ##使用可傳入字典類型的參數函數體fun(key1=value1,key2=value2)```

def fun(num,*,age): ##*號后面的參數必須用關鍵字傳入函數體fun(1,age='20')

函數的返回值

return語句

return [表達式] 語句用于退出函數,選擇性地向調用方返回一個表達式。
不帶參數值的return語句返回None。
如果返回多個值,會將多個值封裝成元組返回
def hello():
return('hello')
print(hello()) ##將函數作為參數調用時,return語句返回的值,即為函數的值
##這里相當于print('hello')


變量作用域

程序的變量并不是在哪個位置都可以訪問的。
訪問權限決定于這個變量是在哪里賦值的。
變量的作用域決定了在哪一部分程序可以訪問哪個特定的變量名稱。
Python的作用域一共有4種,分別是:

  • L (Local) 局部作用域
  • E (Enclosing) 閉包函數外的函數中
  • G (Global) 全局作用域
  • B (Built-in) 內建作用域
    以 L > E > G >B 的優(yōu)先級查找:
    > x = int(2.9) # 內建作用域
    g_count = 0 # 全局作用域
    def outer():
    o_count = 1 # 閉包函數外的函數中
    def inner():
    i_count = 2 # 局部作用域

  • Python 中只有模塊(module),類(class)以及函數(def、lambda)才會引入新的作用域
  • 其它的代碼塊(如 if/elif/else/、try/except、for/while等)內定義的變量,在其所在作用域的其他范圍仍然生效

global和nonlocal關鍵字

  • 在內部作用域需要對全局變量進行更改時
    須在內部作用域使用global關鍵字聲明
    > ```
    num = 1
    def fun1():
    global num # 需要使用 global 關鍵字聲明
    print(num)
    num = 123
    print(num)
    fun1()
    print(num)
  • 在內部作用域需要對外層非全局變量進行更改時
    須在內部作用域使用nonlocal關鍵字聲明
    >```
    def outer():
    num = 10
    def inner():
    nonlocal num # nonlocal關鍵字聲明
    num = 100
    print(num)
    inner()
    print(num) # num值為100
    outer()

參數檢測

isinstance(object,classinfo)

  • 來判斷一個對象是否是一個已知的類型,類似 type()。
    • object -- 實例對象。
    • classinfo -- 可以是直接或間接類名、基本類型或者由它們組成的元組。
    • 返回值 -- 如果對象的類型與參數二的類型(classinfo)相同則返回 True,否則返回 False。

匿名函數

lambda 用來創(chuàng)建匿名函數。
lambda 只是一個表達式,函數體比 def 簡單很多。
lambda的主體是一個表達式,而不是一個代碼塊。僅僅能在lambda表達式中封裝有限的邏輯進去。
lambda 函數擁有自己的命名空間,且不能訪問自己參數列表之外或全局命名空間里的參數。
lambda 函數的語法只包含一個語句
lambda [arg1 [,arg2,.....argn]]:expression
>fun = lambda arg1, arg2: expression
fun( 10, 20 ) ##調用時函數的返回值即expression的值

來源:http://www.icode9.com/content-1-89101.html
本站僅提供存儲服務,所有內容均由用戶發(fā)布,如發(fā)現有害或侵權內容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Python3基礎之函數用法
Python函數式編程
教小朋友學 Python -- 函數與Lambda表達式
《Python入門07》帶你了解python函數那點事兒
Python函數參數實例解讀
溫故而知新--day1
更多類似文章 >>
生活服務
熱點新聞
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服