1. 程式人生 > >python全棧開發14

python全棧開發14

als pri cti 獲取 內存地址 locals 調用 file int

叠代器的優點:
  1.節省內存
  2.惰性機制
  3.單向,不可逆
如何判斷它是否是可叠代對象和叠代器

  可叠代對象->叠代器

  可叠代對象__iter__():就會變成叠代器
    1.‘__iter__‘in dir(obj):True或Flase,返回True就代表他是可叠代對象
    2.引入模塊
      from collections import Iterator(叠代器)
      print(isinstance(參數名,Iterator)
      from collections import Iterable(叠代對象)
      print(isinstance(參數名,Itera)ble
  生成器:


    自己用python代碼寫的叠代器就是生成器
    生成器本身就是叠代器
生成器的表達式和列表推倒式
  1.列表推導式
    [變量(加工後的變量) for 變量 in iterable(叠代對象)] # 循環模式
    [變量(加工後的變量) for 變量 in iterable if 條件] # 篩選模式
  2.生成器表達式:和列表表達式一樣只是括號不一樣

(變量(加工後的變量) for 變量 in iterable(叠代對象)) # 循環模式
    (變量(加工後的變量) for 變量 in iterable if 條件) # 篩選模式

    優點:1.節省代碼
    缺點:不好排錯
    整體:凡是用列表推導式構造的,用其它方式也可以,非常復雜的列表,列表推導式是構造不出來的

內置函數

1.1作用域相關
a =33
b = 22
def func():
    a = 1
    print(globals(),‘\n‘,locals())
func()
1.21其他相關
字符串類型代碼的執行 eval,exec,complie
print(eval(‘1*2*3*4*5*6*7*8*9‘))
li = """
for i in range(10):
    print(i)
"""
exec(li)
1.22輸入輸出相關print 和 input
k = print(1,2,4,6,sep=‘******‘,end=‘‘)
with open(‘試驗品.txt‘,‘w‘,encoding=‘utf-8‘) as f:
    print(‘111111111111‘,1111,file=f,sep=‘****‘)
    print(‘111111111111‘,1111,file=f,sep=‘****‘)
    print(‘111111111111‘,1111,file=f,sep=‘****‘)
1.23內存相關hash():獲取一個可哈希對象的哈希值,id(返回內存地址)
print(hash(1020000000000000000))# 數字最多19個才能保證可哈希值和數值一樣,超過的話就會變成別的
print(hash(‘1111111111111111111‘)) # 哈希字符串
print(hash((1,2,3,4))) # 哈希元組
print(hash(True)) # 哈希bool值
1.24文件打開和模塊相關操作open()和import()函數用於動態加載類和函數 
open:函數用於打開一個文件,創建一個 file 對象,相關的方法才可以調用它進行讀寫
1.25 help():幫助
a = 1
help(a)#查看幫助
1.26 調用相關 callable()能調用返回True 不能調用返回False
按 Ctrl+C 復制代碼 按 Ctrl+C 復制代碼

python全棧開發14