Python複習筆記02

2022-09-03 18:48:08 字數 3070 閱讀 8908

語句表示式:

在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(函式,可迭代物件)

!!!注意委託模式的使用!!!  **例項:

def

hello_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 函式

def

hello(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(物件)    可以得到想要列印與物件相關的內容

例項**

class

book:

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):

print

(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)

print

(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...