可以當做值被賦值給變數
def func():
print(1)
a = func
print(a)
print(func)
輸出的結果: 你犯渾的原因在於,不敢判斷 func函式是不用執行的
當做元素存放在容器中
def func():
print(1)
lst = [func,func,func]
print(lst)
for i in lst:
i() #這就是相當於 func() 函式呼叫
#[, , ]11
1
3.函式名當做函式的引數
def func(f):
print(f) #呼叫的 foo 的記憶體位址
def foo(): #沒有呼叫 不用執行
print(233)
func(foo)
#結果
4.函式名可以當作函式的返回值
def func():
def foo():
print(233)
return foo #返回給 func foo的記憶體位址
print(func())
#.foo at 0x10e0c92f0>
加乙個判斷
def f1():
def f2():
print(1)
def f3():
print(123)
return f2 #這裡返回的是 f2 的記憶體位址,
ret = f2()
return ret #所以這裡的記憶體位址
print(f1())
%s 和 format 都可以 f
s = f"你好" #填充字串
s1 =f"你好"
print(s,s1)
s ="123"
s = f"你好" #可以存放變數
print(s)
s = f"你好" #填充計算公式
print(s)
a = 10
b = 20
s = f"你好" #填充三元運算子
print(s)
#你好 20
s1 = f"}}}" #兩個大括號是乙個
print(s1)
s1 = f"" #後面可以是函式 這個有疑惑,需要解決一下
print(s1)
# 1233
# none
def foo():
def func():
a = 1
return a
return func()
s1 = f"" #現在看這個程式已經沒有啥問題
print(s1)
# 1
lst = [1,2,3,4,5,6,7,8]
s = f""
print(s)
# [1, 2, 3, 4, 5]
dic =
s1 = f""
print(s1)
# 1
當容器中資料量較大的時候使用迭代器,入檔案控制代碼
迭代器優點:節省記憶體,惰性機制
迭代器缺點:使用不靈活,操作繁瑣,不能直接檢視所有值
迭代器的特性:
器:工具
可迭代物件————list ,dict,str,set,tuple
具有很多私有方法,具有_iter_\ 方法的就是乙個可迭代物件,使用靈活
可迭代物件不一定是迭代器,但是迭代物件一定是可迭代物件.
檢視是否是可迭代物件的方法
list.__iter__()
str.__iter__()
dic.__iter__()
tuple.__iter__()
set.__iter__()
方法二
看原始碼方法三 :dir
print(dir(list))
方法四官方宣告只具有__iter__方法就是可迭代物件
可迭代物件的優點:
1.使用靈活
2.直接檢視值
可迭代物件的缺點:
消耗記憶體
取值方式:
list ,tuple,str --索引
dict--鍵
set--直接取值
for迭代器:iter()將可迭代物件轉化乘迭代器
官方宣告只要具有__iter__方法__next__就是迭代器
基於上乙個停留的位置進行取值
s = "152132"
news_s = s.__iter__() #將可迭代物件轉化為迭代器
print(news_s)
print(news_s.__next__())
print(news_s.__next__())
print(news_s.__next__())
print(news_s.__next__())
print(news_s.__next__())#1
5213
for 迴圈原理s = "12332"
new_s = s.__iter__()
while true:
try:
print(new_s.__next__())
except stopiteration: # 捕獲錯誤
break
s = "12332"
new_s = s.__iter__()
while true:
try:
print(new_s.__next__())
except exception: # 萬能異常捕獲
break
遞迴條件:1.自己呼叫自己(官方話,不斷呼叫自己本身)
2.要有明確的終止條件
滿足以上兩個才是有效遞迴
遞:一直執行到帶結束條件
歸:從結束條件往回退
官方宣告最大層次1000,實際測試998/997 可以修改
def age(n):
if n == 4:
return 18
else :
return age(n+1)-2
print(age(1))
格式化,強調 數值格式化
聚合函式返回的的數值型別的值有個特點就是沒有被格式化。通過前面的帶 sum 聚合函式的示例,我們可以看到這一點 注意合計值 命令,或者在物件檢視器中選中 displayformat 屬性。在上節的示例中,格式化操作是針對一物件或物件內的表示式,在物件內僅有乙個表示式時它還能正常工作,不過當物件內不有...
函式的第一類物件,f格式化,迭代器以及遞迴
第一類物件 特殊點 1.可以當作值被賦值給變數 def func print 1 a func a 2.可以當作元素存放在容器中 def func print 1 lst func,func,func for i in lst i 3.函式名可以當作函式的引數 def func f f def fo...
python 格式化和format格式化
格式 name flags width precision typecode name 可選,用於選擇指定的key flags 可選,可提供的值有 右對齊,整數前加正號,負數前加負號 左對齊,正數錢無符號,負數前加負號 空格 右對齊 正數前加空格,負數前加負號 0 右對齊,正數前無符號,負數前加負號...