一、清單推導式
[變量(加工後的變量) for 變量 in iterable] 循環模式
# l2 = [i for i in range(1, 14)]
# print(l2)
# l3 = [ 'python%s期' % i for i in range(1, 14)]
# print(l3)
凡是用清單推導式構造的清單對象,用其他方式都可建構.,非常複雜的清單,清單推導式是建構不出的
[變量(加工後的變量) for 變量 in iterable if 條件] 篩選模式
# l1 = [i for i in range(1, 31) if i % 3 == 0]
# print(l1)
二、生成器表達式
# g_obj = ('python%s期' % i for i in range(1,14)) # 循環模式
# g_obj1 = ('python%s期' % i for i in range(1,14) if i % 2 == 0) # 篩選模式
# print(g_obj) #<generator object <genexpr> at 0x00000000025F73B8>
# print(g_obj.__next__()) #python1期
1.把清單解析的 [ ] 換成 ( ) 得到的就是生成器表達式
2.清單解析與生成器表達式都是一種便利的程式設計方式,隻不過生成器表達式更節省記憶體
3.Python不但使用疊代器協定,讓for循環變得更加通用。大部分内置函數,也是使用疊代器協定通路對象的
三、内置函數
***locals() 目前位置的所有變量以及函數名等資料.
***globals() 永遠是全局的.
*** eval:執行字元串類型的代碼,并傳回最終結果。
# print(eval('1+3')) 4
# dic = eval("{'name': 'alex'}")
# print(dic,type(dic)) {'name': 'alex'} <class 'dict'>
*** exec: 執行字元串類型的代碼
code = '''
for i in range(1, 11):
print(i)
'''
exec(code)
結果: 1 2 3 4 5 6 7 8 9 10
compile:将字元串類型的代碼編譯。代碼對象能夠通過exec語句來執行或者eval()進行求值
*** input:函數接受一個标準輸入資料,傳回為 string 類型
*** print:列印輸出
# print(1,2,3,sep='|') # 設定每個元素的連接配接符 sep='|'
# print(666,end='') # end='\n' 預設換行
# print(555)
** hash:擷取一個對象(可哈希對象:int,str,Bool,tuple)的哈希值
** id:用于擷取對象的記憶體位址
open:函數用于打開一個檔案,建立一個 file 對象,相關的方法才可以調用它進行讀寫
__import__:函數用于動态加載類和函數
help:函數用于檢視函數或子產品用途的詳細說明
** callable:函數用于檢查一個對象是否是可調用的。如果傳回True,object仍然可能調用失敗;但如果傳回False,調用對象ojbect絕對不會成功。
def func1():
print(111)
a = 666
print(callable(a)) False
print(callable(func1)) True