1. Int()整數(shù)
成都創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:網(wǎng)站建設(shè)、做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的阜新網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
2. Float()浮點(diǎn)數(shù)
3. Str()字符串
4. Ord()返回對應(yīng)的ASCII值或Unicode值
5. Chr()通過ASCII返回對應(yīng)的值
6. Bool()布爾運(yùn)算
7. bin()轉(zhuǎn)換為二進(jìn)制
8. hex()轉(zhuǎn)換為十六進(jìn)制
9. oct()轉(zhuǎn)換為八進(jìn)制
10. list()將元組轉(zhuǎn)換為列表
11. tuple()轉(zhuǎn)換為元組
12. dict()創(chuàng)建字典
13. bytes()轉(zhuǎn)換為字節(jié)
Python學(xué)習(xí)筆記_數(shù)據(jù)排序方法
Python對數(shù)據(jù)排序有兩種方法:下面我們來簡單分析下
1. 原地排序:采用sort()方法,按照指定的順序排列數(shù)據(jù)后用排序后的數(shù)據(jù)替換原來的數(shù)據(jù)(原來的順序丟失),如:
代碼如下:
data1=[4,2,6,432,78,43,22,896,42,677,12]
data1.sort()
data1 #原來的順序被替換
[2, 4, 6, 12, 22, 42, 43, 78, 432, 677, 896]
2. 復(fù)制排序:采用sorted()內(nèi)置函數(shù),按照指定的順序排列數(shù)據(jù)后返回原數(shù)據(jù)的一個有序副本(原來的順序保留),如:
代碼如下:
data1=[4,2,6,432,78,43,22,896,42,677,12]
data2=sorted(data1)
data1
[4, 2, 6, 432, 78, 43, 22, 896, 42, 677, 12] #原順序保留
data2
[2, 4, 6, 12, 22, 42, 43, 78, 432, 677, 896] #對副本排序
print("我是python小白")
終端輸出:我是python 。
此種寫法只用于了解print函數(shù)的作用,在程序中要輸出某個內(nèi)容,一般采用變量的形式,即:
my="小白"
print("我是python%s。" % my)
終端輸出:我是python小白。
此處my為變量,小白是被賦值給變量my,并不是my等于變量。定義變量的好處是一個程序可以無限次數(shù)的使用它。定義變量還可以為:
a=b=c=2 #2同時賦值給a b c三個變量
a,b c=1,2,3 #a=1 b=2 c=3
注意:變量名區(qū)分大小寫,不能以數(shù)字開頭。
name,age,weight="小白",18,65.5
stuid=1
print("我的名字是%s,我的年齡是%d,我的體重是%f公斤,我和學(xué)號是%d" % (name,age,weight,stuid))
終端輸出:我的名字是小白,我的年齡是18歲,我的體重是65.500000公斤,我的學(xué)號是1
print("我的名字是%s,我的年齡是%d歲,我的體重是%.2f公斤,我的學(xué)號是%03d" %(name,age,weight,stuid))
終端輸出:我的名字是小白,我的年齡是18歲,我的體重是65.50公斤,我的學(xué)號是001
printt(f"我的名字是{name},我明年的年齡是{age 1}歲,我的體重是{weight}公斤,我的學(xué)號是00{stuid}")
#此種寫法為最常用的。
終端輸出:我的名字是小白,我明年的年齡是19歲,我的體重是65.5公斤,我的學(xué)號是001
%d 為整數(shù)型函數(shù)值 %03d表示以3位整數(shù)顯示,不足的以0替代,超出的原樣顯示。
%f為小數(shù)型函數(shù)值%.2f表示只顯示小數(shù)點(diǎn)后兩位
%s為字符型函數(shù)值 字符串應(yīng)以雙引或單引號括起。
有些時候我們需要通過命令行將參數(shù)傳遞給腳本,C語言中有個getopt()方法,python中也有個類似的命令行參數(shù)解析方法getopt()。python也提供了比getopt()更簡潔的argparse方法。另外,sys模塊也可以實(shí)現(xiàn)簡單的參數(shù)解析,本文將對這3種命令行參數(shù)解析方法簡要介紹。
sys.argv是傳入的參數(shù)列表,sys.argv[0]是當(dāng)前python腳本的名稱,sys.argv[1]表示第一個參數(shù),以此類推。
命令行運(yùn)行:
可以看到傳入的參數(shù)通過sys.argv來獲取,它就是一個參數(shù)列表。
python的getopt與C語言的的getopt()函數(shù)類似。相比于sys模塊,支持長參數(shù)和短參數(shù),并對參數(shù)解析賦值。但它需要結(jié)合sys模塊進(jìn)行參數(shù)解析,語法格式如下:
短參數(shù)為單個英文字母,如果必須賦值需要在后面加英文冒號( : ),長參數(shù)一般為字符串(相比短參數(shù),更能說明參數(shù)含義),如果必須賦值需要在后面加等號( = )。
命令行運(yùn)行:
注意:短參數(shù)(options)和長參數(shù)(long_options)不需要一一對應(yīng),可以任意順序,也可以只有短參數(shù)或者只有長參數(shù)。
argparse模塊提供了很多可以設(shè)置的參數(shù),例如參數(shù)的默認(rèn)值,幫助消息,參數(shù)的數(shù)據(jù)類型等。argparse類主要包括ArgumentParser、add_argument和parse_args三個方法。
下面介紹這三個函數(shù)的使用方法。
argparse默認(rèn)提供了 -h | --help 參數(shù):
命令行運(yùn)行:
下面列出部分參數(shù):
下面來添加參數(shù):
命令行運(yùn)行:
parse_args() 方法用于解析參數(shù),在前面的示例代碼中使用parse_args方法來提取參數(shù)值,對于無效或者錯誤的參數(shù)會打印錯誤信息和幫助信息:
命令行運(yùn)行:
本文介紹了Python的三種命令行參數(shù)解析方法sys.argv、getopt和argparse,可以根據(jù)自己的需要進(jìn)行選擇,getopt和argparse兩種方法相比來說,建議選擇argparse,代碼量更少更簡潔。更詳細(xì)的使用方法參考官方文檔:
--THE END--
裝飾器是通過裝飾器函數(shù)修改原函數(shù)的一些功能而不需要修改原函數(shù),在很多場景可以用到它,比如① 執(zhí)行某個測試用例之前,判斷是否需要登錄或者執(zhí)行某些特定操作;② 統(tǒng)計某個函數(shù)的執(zhí)行時間;③ 判斷輸入合法性等。合理使用裝飾器可以極大地提高程序的可讀性以及運(yùn)行效率。本文將介紹Python裝飾器的使用方法。
python裝飾器可以定義如下:
輸出:
python解釋器將test_decorator函數(shù)作為參數(shù)傳遞給my_decorator函數(shù),并指向了內(nèi)部函數(shù) wrapper(),內(nèi)部函數(shù) wrapper() 又會調(diào)用原函數(shù) test_decorator(),所以decorator()的執(zhí)行會先打印'this is wrapper',然后打印'hello world', test_decorator()執(zhí)行完成后,打印 'bye' ,*args和**kwargs,表示接受任意數(shù)量和類型的參數(shù)。
裝飾器 my_decorator() 把真正需要執(zhí)行的函數(shù) test_decorator() 包裹在其中,并且改變了它的行為,但是原函數(shù) test_decorator() 不變。
一般使用如下形式使用裝飾器:
@my_decorator就相當(dāng)于 decorator = my_decorator(test_decorator) 語句。
內(nèi)置裝飾器@functools.wrap可用于保留原函數(shù)的元信息(將原函數(shù)的元信息,拷貝到對應(yīng)的裝飾器函數(shù)里)。先來看看沒有使用functools的情況:
輸出:
從上面的輸出可以看出test_decorator() 函數(shù)被裝飾以后元信息被wrapper() 函數(shù)取代了,可以使用@functools.wrap裝飾器保留原函數(shù)的元信息:
輸出:
裝飾器可以接受自定義參數(shù)。比如定義一個參數(shù)來設(shè)置裝飾器內(nèi)部函數(shù)的執(zhí)行次數(shù):
輸出:
Python 支持多個裝飾器嵌套:
裝飾的過程:
順序從里到外:
test_decorator('hello world') 執(zhí)行順序和裝飾的過程相反。
輸出:
類也可以作為裝飾器,類裝飾器主要依賴__call__()方法,是python中所有能被調(diào)用的對象具有的內(nèi)置方法(python魔術(shù)方法),每當(dāng)調(diào)用一個類的實(shí)例時,__call__()就會被執(zhí)行一次。
下面的類裝飾器實(shí)現(xiàn)統(tǒng)計函數(shù)執(zhí)行次數(shù):
輸出:
下面介紹兩種裝飾器使用場景
統(tǒng)計函數(shù)執(zhí)行所花費(fèi)的時間
輸出:
在使用某些web服務(wù)時,需要先判斷用戶是否登錄,如果沒有登錄就跳轉(zhuǎn)到登錄頁面或者提示用戶登錄:
--THE END--
元組是一種固定長度、不可變的Python對象序列。創(chuàng)建元組最簡單的辦法是用逗號分隔序列值:
tuple 函數(shù)將任意序列或迭代器轉(zhuǎn)換為元組:
中括號 [] 可以獲取元組的元素, Python中序列索引從0開始 :
元組一旦創(chuàng)建,各個位置上的對象是無法被修改的,如果元組的一個對象是可變的,例如列表,你可以在它內(nèi)部進(jìn)行修改:
可以使用 + 號連接元組來生成更長的元組:
元組乘以整數(shù),則會和列表一樣,生成含有多份拷貝的元組:
將元組型的表達(dá)式賦值給變量,Python會對等號右邊的值進(jìn)行拆包:
拆包的一個常用場景就是遍歷元組或列表組成的序列:
*rest 用于在函數(shù)調(diào)用時獲取任意長度的位置參數(shù)列表:
count 用于計量某個數(shù)值在元組中出現(xiàn)的次數(shù):
列表的長度可變,內(nèi)容可以修改。可以使用 [] 或者 list 類型函數(shù)來定義列表:
append 方法將元素添加到列表尾部:
insert 方法可以將元素插入到指定列表位置:
( 插入位置范圍在0到列表長度之間 )
pop 是 insert 的反操作,將特定位置的元素移除并返回:
remove 方法會定位第一個符合要求的值并移除它:
in 關(guān)鍵字可以檢查一個值是否在列表中;
not in 表示不在:
+ 號可以連接兩個列表:
extend 方法可以向該列表添加多個元素:
使用 extend 將元素添加到已經(jīng)存在的列表是更好的方式,比 + 快。
sort 方法可以對列表進(jìn)行排序:
key 可以傳遞一個用于生成排序值的函數(shù),例如通過字符串的長度進(jìn)行排序:
bisect.bisect 找到元素應(yīng)當(dāng)被插入的位置,返回位置信息
bisect.insort 將元素插入到已排序列表的相應(yīng)位置保持序列排序
bisect 模塊的函數(shù)并不會檢查列表是否已經(jīng)排序,因此對未排序列表使用bisect不會報錯,但是可能導(dǎo)致不正確結(jié)果
切片符號可以對大多數(shù)序列類型選取子集,基本形式是 [start:stop]
起始位置start索引包含,結(jié)束位置stop索引不包含
切片還可以將序列賦值給變量:
start和stop可以省略,默認(rèn)傳入起始位置或結(jié)束位置,負(fù)索引可以從序列尾部進(jìn)行索引:
步進(jìn)值 step 可以在第二個冒號后面使用, 意思是每隔多少個數(shù)取一個值:
對列表或元組進(jìn)行翻轉(zhuǎn)時,一種很聰明的用法時向步進(jìn)值傳值-1:
dict(字典)可能是Python內(nèi)建數(shù)據(jù)結(jié)構(gòu)中最重要的,它更為常用的名字是 哈希表 或者 關(guān)聯(lián)數(shù)組 。
字典是鍵值對集合,其中鍵和值都是Python對象。
{} 是創(chuàng)建字典的一種方式,字典中用逗號將鍵值對分隔:
你可以訪問、插入或設(shè)置字典中的元素,:
in 檢查字典是否含有一個鍵:
del 或 pop 方法刪除值, pop 方法會在刪除的同時返回被刪的值,并刪除鍵:
update 方法將兩個字典合并:
update方法改變了字典元素位置,對于字典中已經(jīng)存在的鍵,如果傳給update方法的數(shù)據(jù)也含有相同的鍵,則它的值將會被覆蓋。
字典的值可以是任何Python對象,但鍵必須是不可變的對象,比如標(biāo)量類型(整數(shù)、浮點(diǎn)數(shù)、字符串)或元組(且元組內(nèi)對象也必須是不可變對象)。
通過 hash 函數(shù)可以檢查一個對象是否可以哈?;词欠窨梢杂米髯值涞逆I):
集合是一種無序且元素唯一的容器。
set 函數(shù)或者是用字面值集與大括號,創(chuàng)建集合:
union 方法或 | 二元操作符獲得兩個集合的聯(lián)合即兩個集合中不同元素的并集:
intersection 方法或 操作符獲得交集即兩個集合中同時包含的元素:
常用的集合方法列表:
和字典類似,集合的元素必須是不可變的。如果想要包含列表型的元素,必須先轉(zhuǎn)換為元組:
分享名稱:python函數(shù)筆記,Python里的函數(shù)
文章URL:http://jinyejixie.com/article2/hsedic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、域名注冊、網(wǎng)站收錄、品牌網(wǎng)站建設(shè)、網(wǎng)站設(shè)計公司、定制網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)