日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python 函数可以作为容器对象的元素_python第十二天, 三元表达式, 函数对象,名称空间与作用域,函数的嵌套定义...

發布時間:2023/12/19 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 函数可以作为容器对象的元素_python第十二天, 三元表达式, 函数对象,名称空间与作用域,函数的嵌套定义... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

復習

1. 字符串的比較:

2. 函數的參數:形參與實參

3. 實參的分類:位置實參與關鍵字實參

4. 形參分類:

1.無值位置形參

2.有值位置形參

3.可變長位置形參

4.有無值關鍵字形參

5.可變長關鍵字形參

5. 打散機制

今日內容

1. 函數默認值的細節。*

2. 數據類型的補充:語法簡單,經常去使用就OK ***

----- 三元表達式? |? 列表推導式? |? 字典推導式

3. 函數對象:函數名的各種應用場景? *****

4. 名稱空間與作用域:解釋變量名重復與從圖沖突問題? *****

5. 函數的嵌套定義:在函數內部定義函數? *****

函數默認值的細節

如果函數的默認參數,它的默認值為變量,在所屬函數定義階段執行時就被確為當時變量存放的值。

a = 100

def fn(num=a):

print(num) # 此處打印的值還是100

a = 200 # 此處再次賦值的200并沒有被帶入函數中

fn()

三元表達式

三目運算符:用于簡化 if ...else... 的語法:

----- 只能解決 if...else...結構,其他 if? 分支結構都不管

-----一個分支提供一個結果,如果一個分支提供了多個結果,將多個結果通過元祖返回

a = int(input('輸入:'))

b = int(input('輸入:'))

res = a if a > b else b

print(res)

列表與字典推導式

---快速生成列表或者字典的語法糖。而且還能在生成過程中添加簡單的邏輯

1 . 能被列表推導式推到的數據源,必須在循環取值時可以得到一個值

ls = [v for v in range(1,6)]

print(ls) # [1, 2, 3, 4, 5] 快速的創建一個字典

ls = ['奇數'if v %2 ==0 else '偶數' for v in range(1,6)] # 可以使用if...else 與for循環連用,此處if后的v就是經過for循環的v

print(ls) # ['偶數', '奇數', '偶數', '奇數', '偶數']

2. 能被字典推導式推導的數據源,必須在循環取值時可以被解壓賦值為兩個值

ls = [['A',1],('B',2)]

res = {k.lower():v for k,v in ls} # 字典推導式可以for循環遍歷列表總的元素,然后用k,v來接受,來作為它的key和value 還可以對key加功能,比如此處的lower

print(res) # 此處的結果為{'a': 1, 'b': 2}

函數對象

在python中,所有變量存放的值,只要是地址,我們就稱之為對象

-----所有的變量都是用來存放地址的,所以都是對象

-----存放整型的地址就是整型對象 |? 存放函數的地址就是函數對象? |? 存放文件的地址就是文件對象

函數對象:存放函數地址的變量,就是函數對象

def fn():pass

my_fn = fn

# my_fn 存著函數fn()的函數地址,所以都是函數對象,函數對象的使用就是函數對象加()來調用函數

my_fn() # 可以這樣來使用

函數對象的應用場景

1. 函數對象()就是調用函數

def fn1():

pass

fn1() # 普通的函數調用

2. 函數對象可以直接作為變量賦值給其他變量

def fn2():

pass

my_fn = fn2

print('>>>',my_fn,fn2) # 此處打印的地址一致,說明函數對象可以作為變量來賦值給其他變量

my_fn() # 依然能調用 此處my_fn 等同與所定義的 fn2 函數

3. 函數對象可以作為函數的參數

def fn3(func): # 所以此處的fnnc 就等同與my_fn 和 fn2

func()

fn3(my_fn) # 此處把my_fn作為了 func的實參所以這個函數所執行的就是fn2函數

4. 函數對象可以作為函數的返回值

def fn4():

return my_fn # 此處這個函數的返回值是my_fn

my_fn2 = fn4() # s所以此處的my_fn2的功能就是my_fn而my_fn的功能是fn2,所以等同于fn2

5. 函數對象可以作為容器類型的成員

ls = [my_fn,my_fn2] # 函數的對象可以作為容器的元素。如果調用,也具有函數的功能

print(ls[0]()) # 可以按照索引來調用

名稱空間并不能

隊列存儲方式: 先進先出

堆棧存儲方式:先進后出

名稱空間:就是名字與地址的對應關系,可以被python解釋器遍歷查找,采用堆棧存儲方式

三種名稱空間:

1. Built - in : 內置名稱空間,系統級,一個,隨解釋器執行而產生,解釋器停止而銷毀

2. Global : 全局名稱空間,文件級,多個,隨所屬文件加載而產生,文件運行完畢后銷毀

3. Local : 局部名稱空間,函數級,多個,隨所屬函數執行而產生,函數執行完畢后銷毀

注:文件的 if ,while,for ,with,這些能產生縮減的關鍵字并不能產生名稱空間

4. 加載順序? Bulit-in? >? Global? >? Local

函數嵌套定義

概念:在一個函數內部定義另一個函數

def outer():

print('outer run')

a = 10 # 函數對象 (變量) 與普通(對象)變量一樣,在函數內部定義,隨函數調用而產生

# 調用結束而銷毀,所以只能在函數內部調用

def inner():

print('inner run')

inner() # 此處inner必須在函數內部調用,在外部是無法調用

outer()

作用域

作用域:變量(名字 | 對象) 起作用的范圍

四種作用域

1. Built-in 內置作用域:作用所有文件的所有地方

2. Global 全局作用域 :作用當前文件的所有地方

3. Enclosing 嵌套作用域 :作用當前函數以及內部被嵌套的函數

4. Local 局部作用域 :? 作用當前函數內部

注意:

不同作用域之間名字不沖突,來達到名字的重復的使用

每個作用域優先使用自己作用域中的名字,沒有再找到更大的名稱空間,直到內置。再找不到就會報錯

查找順序:Local? >? Enclosing? > Global? >? Built - in

day_12函數默認值,數據類型的補充,函數對象名稱空間與作用域,函數的嵌套定義

復習, 昨天講了字符串的比較,按照從左往右比較每一個字符,通過字符對應的ASCII碼進行比較 函數的參數,‘ 實參與形參 形參:在函數定義時()中出現的參數 實參,在函數調用時()中出現的參數 實參的 ...

python12--字符串的比較 函數的默認值的細節 三元表達式 函數對象 名稱空間 作用域 列表與字典的推導式 四則運算 函數的嵌套

復習 ? 1.字符串的比較; 2.函數的參數; ******實參與形參的分類: 3.函數的嵌套調用: ? ? # 字符串的比較# ?-- 按照從左往右比較每一個字符,通過字符對應的ascii進行比較 ...

python 函數的名稱空間及作用域

一:名稱空間 1:什么是名稱空間: 名稱空間即:儲存名字與值的內存地址關聯關系的空間 2.名稱空間的分類: 內置名稱空間:存儲器自帶的一些名稱與值的對應關系,如:print,len,max等; 生命周 ...

Python 函數對象-函數嵌套-名稱空間與作用域-閉包函數

今日內容: 1. 函數對象 函數是第一類對象: 指的是函數名指向的值可以被當中數據去使用 1.可以被引用 2.可以當做參數傳給另一個函數 3.可以當做一個函數的返回值 4.可以當做容器類型的元素 2. ...

day12 函數對象,名稱空間與作用域

""" 今日內容: 1.函數參數傳值細節 2.三元表達式 3.列表及字典推導式 4.函數對象 5.名稱空間與作用域 6.函數的嵌套定義初識 ""&qu ...

PYTHON-函數對象,嵌套,名稱空間與作用域,閉包函數

一 函數是第一類對象,即函數可以當作數據傳遞 1 可以被引用 2 可以當作參數傳遞 3 返回值可以是函數 3 可以當作容器類型的元素 def foo(): return len f = foo pri ...

python學習Day12 函數的默認值、三元表達式、函數對象(函數名)的應用場景、名稱空間與作用域

復習 1.字符串的比較: -- 按照從左往右比較每一個字符,通過字符對應的ascii進行比較 2.?函數的參數 : 1)實參與形參:? ? ? ?-- 形參:在函數定義時()中出現的參數 ? ? ? ...

Python--day12(三元表達式、函數對象、名稱空間與作用域、函數嵌套定義)

今日主要內容 1.? 函數默認值細節(*) 2.? 數據類型補充:三元表達式.列表推導式.字典推導式 (***) 3.? 函數對象:函數名的各種應用場景 (*****) 4.? 名稱空間與作用域:解釋 ...

day12函數,三元表達式 ,列表推導式 ,字典推導式,函數對象,名稱空間與作用域,函數的嵌套定義

復習 # 字符串的比較 # -- 按照從左往右比較每一個字符,通過字符對應的ascii進行比較 # 函數的參數 # 1)實參與形參: # -- 形參:在函數定義時()中出現的參數 # -- 實參:在函 ...

隨機推薦

OC基礎--結構體 枚舉做類成員屬性

結構體? 枚舉作類的成員屬性: 定義一個學生類 性別 -- 枚舉 生日 入學日期? 畢業日期? --? 結構體 代碼示例: 聲明文件 Student.h: #import

Jfianl

http://www.oschina.net/question/257183_149268----------- 添加Handler: me.add(new?ContextPathHandler(&q ...

C++的CreateThread實例

function CreateThread(? lpThreadAttributes: Pointer;?????????? {安全設置}? dwStackSize: DWORD;?????????? ...

根據ID獲取CEdit的句柄實例

MyApp.h和MyApp.cpp #ifndef MY_APP_H_ #define MY_APP_H_ #include class CMyApp:public ...

Java Hour 49 保存和查詢歷史的Weather

吾一直堅信,是需求的不斷變化推動了架構的不斷演變. 新的需求 能夠查看指定日期的Weather,因為客戶想要比較昨天和今天的天氣情況,所以需要能夠查詢歷史數據的功能. 1 能保存當前的天氣到數據庫 2 ...

大腦提取每一個體素26領域的matlab代碼

%-------------- outer loop for x= 1:40 for y =1:48 for z =1:34 %----------inter loop x=20; y=30; z=1 ...

前端筆試題目總結——應用JavaScript函數遞歸打印數組到HTML頁面上

數組如下: var item=[{ name:'Tom', age:70, child:[{ name:'Jerry', age:50, child:[{ name:'William', age:20 ...

IHttpModule接口事件執行 獲取Session 找了很多國內的都不對,從國外轉過來一個測試可用的

我的環境,asp.net4.0框架集 不多說上代碼 public class MyHttpModule : IHttpModule { public void Init(HttpApplication ...

Silverlight學習(二)

好久沒來寫博客了,這期間經歷了春節,也因為忙于一個項目,所以博客被疏忽了.最近一段時間一直在用silverlight做項目,從來一開始的不熟悉漸漸的開始上手.今天記錄一下自己學習prism的一些sam ...

總結

以上是生活随笔為你收集整理的python 函数可以作为容器对象的元素_python第十二天, 三元表达式, 函数对象,名称空间与作用域,函数的嵌套定义...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。