語句表示式:
在python中支援遍歷迴圈的物件:可迭代器物件,支援迭代協議的物件
比如列表list沒有迭代功能只是可迭代物件
迭代:迭代協議 --> 例:f.__next__() 屬於f的迭代方法,全域性的迭代方法為next(f)
迭代工具 --> for,…推導… map…
迭代器物件 已經實現
可迭代物件 iter() --> __iter__()用於生成迭代器
iter(f) is f 判斷f是否有迭代功能
內建可迭代物件 --> range() map(函式,可迭代物件) zip() …
注意:list在資料量小的時候操作簡單方便,在資料量大的時候占用過大記憶體,不如支援迭代協議的物件,用到某個值就取出某個值,對記憶體的消耗小。
函式:
why:最大化**重用、最小化**冗餘、過程分解
定義: def 函式名(引數1,…):函式體
呼叫:函式名(實際引數)
變數作用域:built-in、global(global)、enclousure(nonlocal)、local
引數:傳遞1. 不可變型別,傳遞副本給函式,函式內操作不影響原始值
2. 可變型別,傳遞位址引用,函式內操作可能會影響原始值
傳副本可以不改變原始值
匹配 位置匹配、關鍵字匹配、預設值(呼叫時省略傳值)、*args任意數量引數(接收元組)、**kwargs(接收字典表)
lambda表示式:定義匿名函式,基本格式 lambda 引數1,… :函式
高階工具:map(函式,可迭代物件)、filter(函式,可迭代物件)
!!!注意委託模式的使用!!! **例項:
defhello_chinese(name):
print('
您好:'
, name)
defhello_english(name):
print('
hello
', name)
defhello_japanese(name):
print('
こんにちは
', name)
hello =hello_english
#hello = lambda name:print('你好', name)
hello('
tom'
) #這個步驟就委託 hello_english 函式
defhello(action, name):
action(name)
hello(hello_japanese,
'tom
') #這個步驟就委託 hello_japanese 函式
#hello(lambda name: print('nllpko', name), 'tom')
包與模組管理
模組指令:import from importlib.reload(模組)
包why:**重用 命名空間 實現資料或服務共享
步驟:1找到模組檔案 2編譯為位元組** 3執行模組檔案
如果想使用模組的最新改變的結果可使用
import importlib
importlib.reload(模組) (注意在呼叫模組時直接(import 模組名)不能使用(from…import…)形式)
搜尋範圍:1程式主目錄 2環境變數 3標準庫 4擴充套件庫
物件導向程式設計
步驟:ooa物件導向分析 ood物件導向設計 oop物件導向程式設計
實現:1分析物件的特徵行為 2寫類描述物件模版 3例項化,模擬過程
特徵:封裝 繼承 多型
def __repr__(self): return… 或 def __str__(self): return…
print(物件) 可以得到想要列印與物件相關的內容
例項**
classbook:
count =0
def__init__(self, title, price=0.0, author=none):
self.title =title
self.price =price
self.author =author
book.count += 1
def__del__
(self):
book.count -= 1
def__repr__
(self):
return
'《圖書: {}>
'.format(self.title)
def__str__
(self):
return
'[圖書:{}, **:{}]
'.format(self.title, self.price)
defprint_info(self):
(self.title, self.price, self.author)
if__name__ == '
__main__':
book1 = book('
python經典
', price = 29.0, author = '
tom'
) book2 = book('
flask')
book3 = book('
asp.net')
del(book3)
(book1) # 執行後會看到[圖書:python經典, **:29.0]
#print('圖書數量:{}'.format(book.count))
基礎複習02
1.date類 構造方法 long date date long date 2.dateformat類 a.dateformat sdf new dateformat 預設格式 b.dateformat sdf new dateformat 指定格式 格式化 date string 解析 strin...
python學習筆記 02
f file m.txt r for line in f.readlines line line.strip n split print line print 可以列印字串也可以列印listprint abc,這樣可以不換行 f.read 方法可以處理一種特殊情況,當f.read讀到檔案結尾時,如果...
python自學筆記02
在完全數中,最後可以輸出三種結果 if sumofdivisors thenum print thenum,is a perfect number elif sumofdivisors thenum print thenum,is a deficient number else print then...