晨測
global和nonlocal區別
寫一個遞歸的階乘
回顧
1.global和nonlocal 關鍵字
2.函數的遞歸
1.查找規律
2.設置退出條件
3.性能
3.閉包
外函數中定義一個內函數
外函數的返回值是內函數的引用
內函數引用外函數的變量,未來外函數執行完畢,不會釋放被內函數引用變量
4.總結
1.變量
2.標識符
3.數據類型
4.運算符
5.分支結構
6.循環結構
7.函數
作業解答
沒有留
今日概要
1. python中的內建函數
2. python中的高階函數
3. python中共的字符串相關函數
一 python中的內建函數
1. 內建函數
可以直接在當前文件中使用的函數
調用:
函數名稱(實參列表)
參數類型:有可能是函數,傳遞的是函數的引用
abs(); dict(); help(); min(); setattr();
all(); dir(); hex(); next(); slice();
any(); divmod(); id(); object(); sorted();
ascii(); enumerate(); input(); oct(); staticmethod();
bin(); eval(); int(); open(); str();
bool(); exec(); isinstance(); ord(); sum();
bytearray(); filter(); issubclass(); pow(); super();
bytes(); float(); iter(); print(); tuple();
callable(); format(); len(); property(); type();
chr(); frozenset(); list(); range(); vars();
classmethod(); getattr(); locals(); repr(); zip();
compile(); globals(); map(); reversed(); __import__();
complex(); hasattr(); max(); round();
delattr(); hash(); memoryview(); set();
2. 輸入輸出函數
1. 輸出函數:
print() # 打印輸出
# 在python2.x 使用關鍵字 print 來輸出內容
語法:print(*objects, sep=" “, end=”\n", file = sys.out)
參數:
object -> 一次性輸出多個對象,多個對象,實參之間使用逗號分割
sep -> 多個對象輸出展示時,使用的分隔符,默認是" "
end -> 設定字符串的結束字符默認是"\n"
file -> 輸出的位置, 默認是控制臺
返回值:
無返回值,None
2. 輸入函數:
input() #從標準的輸入中讀取一行文本數據
# 默認的標準輸入就是鍵盤,返回值string類型
語法:input(prompt)
參數:
prompt 提示字符信息
返回值:
返回從鍵盤接收到用戶輸入的字符串的數據
3. 數據類型,類型轉換相關函數
int() # 將一個字符串或者數字數據轉換成整型
float() # 將其他數據類型轉換成浮點類型
bool() # 將其他數據類型轉換成bool類型
complex() # 將其他數據類型轉換成復數類型(基本上用不到)str() # 將其他數據類型轉換成字符串類型
list() # 創建空列表,將其他數據類型轉換成列表
tuple() # 創建空元組,將其他數據類型轉換成元組
dict() # 創建空字典,將其他數據類型轉換成字典
set() # 創建空集合,將其他數據類型轉換成集合
4. 變量(對象)信息相關的
type() # 獲取當前的對象的數據類型
id() # 獲取當前對象的內存地址(唯一標識)
globals() # 獲取全局變量的可用變量(以字典的形式返回)
locals() # 獲取當前作用域中的可用的局部變量,以字典的類型返回
查看函數文檔和幫助的函數
help()函數
函數.doc
###5. 數學相關的
1. abs() 獲取以數據的絕對值
語法:變量=abs(數據)
例如:
num = -666.547
res = abs(num)
print(res)
2. sum() 獲取容器中的和
語法:結果=sum(容器數據)
參數:允許是list,tuple,set,dict(只對字典的鍵進行操作,值的話不管)
例如:
list1 = {1:'zhagnsan',4:"hae",56:"asdf",2:"asd"}res = sum(list1)print(res)
# 這里 字典的求和是對字典中的鍵進行操作,而字典的值不動
3. max() 獲取容器中的最大值
語法:結果=max(容器數據)
參數:允許是list,tuple,set,dict(只對字典的鍵進行操作,值的話不管)
例如:
list1 = {1:'zhagnsan',4:"hae",56:"asdf",2:"asd"}res = max(list1)print(res)
# 這里 字典的求和是對字典中的鍵進行操作,而字典的值不動
# 若比較字符串,則比較的是字符對應的ASCII編碼的數值大小
4. min() 獲取容器中的最小值
語法:結果=min(容器數據)
參數:允許是list,tuple,set,dict(只對字典的鍵進行操作,值的話不管)
例如:
list1 = {1:'zhagnsan',4:"hae",56:"asdf",2:"asd"}res = min(list1)print(res)
# 這里 字典的求和是對字典中的鍵進行操作,而字典的值不動
# 若比較字符串,則比較的是字符對應的ASCII編碼的數值大小
5. round() 四舍五入操作(針對數值類型數據)
語法:結果=round(浮點數)
例如:
num = 5.5
res = round(num)print(res)
# 這里 字典的求和是對字典中的鍵進行操作,而字典的值不動
# 若比較字符串,則比較的是字符對應的ASCII編碼的數值大小# 注意: x.5 的round結果是:x是奇數 進1,x是偶數 不進1
6. range()函數 用于生成列表
格式:
range(start,end,step)
返回值:
數值構成的列表類型
7. pow()函數 用于計算冪指數
格式:
pow(x,y)
參數:
x: 底數
y: 次方數
返回值:
運算后的結果
6. 進制轉換函數
bin()
將數值轉換成2進制參數:其他數值類型數據返回值:2進制數值類型
oct()
將數值轉換成8進制參數:其他數值類型數據返回值:8進制數值類型
hex()
將數值轉換成16進制參數:其他數值類型數據返回值:16進制數值類型
7. 字符ASCII轉換的函數
ord() 將字符轉換成其他對應的ASCII碼語法:res = ord(字符)chr() 將對應的ASCII碼轉換成其他字符語法:res = chr(ASCII碼)
二 python中的高階函數
1. sorted()函數
語法:sorted()
功能:對一組數據進行排序操作
參數:iterable : 迭代器 可以迭代的一組數據(迭代器,復雜的數據類型)reverse : 是否倒序,可選參數.默認值是Falsekey: 可選成參數,用戶自定義的函數(用來設定比價規則)func 函數的引用
返回值:排序后的結果數據
2. map()函數
語法: map(func, iterable)
功能:將可迭代的數據,獲取一個處理后的數據的迭代器
參數:func: 針對數據操作的函數iterable: 可以迭代的數據(迭代器,復雜的數據的類型的數據,range()函數申城的一組數據)
返回值:迭代器
3. reduce()函數
語法: reduce(func, iterable)
功能: 從我們的iterable中獲取兩個值,移動到func中進行處理和運算,將計算結果和iterable中的后續的一個數據進行相同的操作,再次移動到func中進行處理和運算
重復上述操作,可迭代的數據處理完畢后,此函數結束
參數:func: 針對數據操作的函數iterable: 可以迭代的數據(迭代器,復雜的數據的類型的數據,range生成的列表)
返回值: 最終計算的結果 練習:求1-100之間的所有偶數的和求5的階乘使用lambda表達式重構代碼
4. filter()函數
語法: filter(func, iterable)
功能: 過濾數據,用戶自定義函數需要設置返回值,如果返回值為False,則過濾掉此數據從我們的iterable中獲取一個值,移動到func中進行判斷,如果返回值為False,則過濾掉此數據
重復上述操作,可迭代的數據處理完畢后,此函數結束
參數: func: 針對數據操作的函數iterable: 可以迭代的數據(迭代器,復雜的數據的類型的數據,range生成的列表)
返回值: 迭代器
三 python中的字符串相關函數
1. 字符串相關概述
由多個字符組成的字符串數據
通常都是由單引號’ ‘雙引號" "三引號’’’ ‘’’ “”" “”" 抱起來的數據
標識符: 變量 函數 參數
2. 編解碼函數(爬蟲: 對數據進行解碼)
一個例子
百度(不是只有國內訪問)
\xa24\x345
Unicode編碼(萬國碼)
常見的編碼格式
ASCII 編碼(西方英語國家)
GB2312 編碼(中國) -> 只能表示常用的6000+漢字
GBK 編碼(中國)
GB18030 編碼(中國)
BIG5 編碼(中國)
Unicode 編碼(所有國家所有字符)
utf-8 utf-16 utf-32
encode() 函數: 將我們的數據進行Unicode編碼
語法:
result = encode(數據)
decode() 函數: 將我們的Unicode編碼的數據進行解碼
語法:
result = decode(Unicode數據)
3. 字符串常見操作
常見操作:
+ 字符串連接符
* 字符串復制
[] 字符串索引操作
[::]字符串分片操作(重點) 類似于: range()函數
注意:
字符串的索引和切片操作,支持訪問,不支持修改
分片操作中: 參數三表示步長step
3. 字符串的轉義字符
\ 轉義符,續航符續航符: 字符串的行尾添加此字符,可以在下一行繼續編寫字符內容轉義符: 在\后面跟上特定的字符,實現特定的功能效果