作用就是把合理的數(shù)據(jù)轉(zhuǎn)換為需要的類型。int()整數(shù),float()浮點數(shù),str()字符串,list()列表,tuple()元組,set()集合……
創(chuàng)新互聯(lián)建站專注于南岳網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供南岳營銷型網(wǎng)站建設(shè),南岳網(wǎng)站制作、南岳網(wǎng)頁設(shè)計、南岳網(wǎng)站官網(wǎng)定制、重慶小程序開發(fā)服務(wù),打造南岳網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供南岳網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
比如a='12'這個是字符串類型,用int函數(shù)a=int(a)這時變量a就是整型,字符串'12'變?yōu)榱苏麛?shù)12。Python沒有變量聲明的要求,變量的屬性在賦值時確定,這樣變量的類型就很靈活。
有一種題目判斷一個整數(shù)是否回文數(shù),用字符串來處理就很簡單
a=1234321#整數(shù)
if str(a)==str(a)[::-1]:#借助字符串反轉(zhuǎn)比較就可以確定是否回文數(shù)。
還比如元組b=(1,3,2,4),元組是不可以更新刪除排序成員的,但是列表是可以的,通過列表函數(shù)進行轉(zhuǎn)換來實現(xiàn)元組的更新刪除和排序。
b=(1,3,2,4)
b=list(b)
b.sort()
b=tuple(b)
這時得到的元組b就是一個升序的元組(1,2,3,4)
再比如你要輸入創(chuàng)建整數(shù)列表或者整數(shù)元組基本上寫法相同,就是用對應(yīng)的函數(shù)來最后處理。
ls=list(map(int,input().split()))#這個就是列表
tup=tuple(map(int,input().split()))#這個就是元組
再比如有個叫集合的,集合有唯一性,可以方便用來去重。
ls=[1,2,3,1,2,3,1,2,3]
ls=list(set(ls))#通過set()去重后,現(xiàn)在的ls里就是[1,2,3]去重后的列表。
Numbers(數(shù)字型):
即我們常說的1,2,3等等這些數(shù)字,Python有兩個常見的數(shù)據(jù)類型轉(zhuǎn)化函數(shù):int和float,一般數(shù)據(jù)類型可以用來做一些算術(shù)功能,如加減乘除乘方等等,還可以用作比較功能,一般返回的是true和false,也就是大于、等于、小于、小于等于諸如此類的有很多,這里就不一一解釋了。
String(字符串):
字符串是Python中比較常見的數(shù)據(jù)類型之一,能夠使用str函數(shù)將其他類型的數(shù)據(jù)強制轉(zhuǎn)換為字符串類型,有三種生成方法,即單引號'XXX',雙引號"XXX",三引號'''XXX
''',其中三引號一般用于字符串內(nèi)容較長的時候。
List(列表):
列表可以說是Python中最為活躍的一個數(shù)據(jù)類型,使用也很頻繁,操作也很多,可以通過list函數(shù)或方括號[]進行列表的創(chuàng)建。常見函數(shù)如求長度,用len,合并多個列表用+,列表元素重復(fù)*等等。
Tuple(元組):
元組可以看成是一種不可修改的特殊列表,可以通過小括號()或者tuple函數(shù)來創(chuàng)建,即便是只有一個元素,元組中的元素最后也要有逗號。常見操作有求長度len,元組元素重復(fù)*,元組拼接+,查看最值max、min等。
Dictionary(字典):字符串、列表、元組都是有序的數(shù)據(jù)類型,字典是無序的數(shù)據(jù)類型,主要是用來存放具有一定映射關(guān)系的數(shù)據(jù)??梢酝ㄟ^兩種方法創(chuàng)建,1、{}2、dict函數(shù)創(chuàng)建。
set(集合):
集合不能有重復(fù)元素,可以看作是列表和字典的“雜合體”,可以通過三種方式創(chuàng)建,1、set函數(shù),空集合只能用這種方法;2、{}創(chuàng)建,3、創(chuàng)建凍集合,frozenst。
python 的函數(shù)參數(shù)類型分為4種:
1.位置參數(shù):調(diào)用函數(shù)時根據(jù)函數(shù)定義的參數(shù)位置來傳遞參數(shù),位置參數(shù)也可以叫做必要參數(shù),函數(shù)調(diào)用時必須要傳的參數(shù)。
當參數(shù)滿足函數(shù)必要參數(shù)傳參的條件,函數(shù)能夠正常執(zhí)行:
add(1,2) #兩個參數(shù)的順序必須一一對應(yīng),且少一個參數(shù)都不可以
當我們運行上面的程序,輸出:
當函數(shù)需要兩個必要參數(shù),但是調(diào)用函數(shù)只給了一個參數(shù)時,程序會拋出異常
add(1)
當我們運行上面的程序,輸出:
當函數(shù)需要兩個必要參數(shù),但是調(diào)用函數(shù)只給了三個參數(shù)時,程序會拋出異常
add(1,2,3)
當我們運行上面的程序,輸出
2.關(guān)鍵字參數(shù):用于函數(shù)調(diào)用,通過“鍵-值”形式加以指定??梢宰尯瘮?shù)更加清晰、容易使用,同時也清除了參數(shù)的順序需求。
add(1,2) # 這種方式傳參,必須按順序傳參:x對應(yīng)1,y對應(yīng):2
add(y=2,x=1) #以關(guān)健字方式傳入?yún)?shù)(可以不按順序)
正確的調(diào)用方式
add(x=1, y=2)
add(y=2, x=1)
add(1, y=2)
以上調(diào)用方式都是允許的,能夠正常執(zhí)行
錯誤的調(diào)用方式
add(x=1, 2)
add(y=2, 1)
以上調(diào)用都會拋出SyntaxError 異常
上面例子可以看出:有位置參數(shù)時,位置參數(shù)必須在關(guān)鍵字參數(shù)的前面,但關(guān)鍵字參數(shù)之間不存在先后順序的
3.默認參數(shù):用于定義函數(shù),為參數(shù)提供默認值,調(diào)用函數(shù)時可傳可不傳該默認參數(shù)的值,所有位置參數(shù)必須出現(xiàn)在默認參數(shù)前,包括函數(shù)定義和調(diào)用,有多個默認參數(shù)時,調(diào)用的時候,既可以按順序提供默認參數(shù),也可以不按順序提供部分默認參數(shù)。當不按順序提供部分默認參數(shù)時,需要把參數(shù)名寫上
默認參數(shù)的函數(shù)定義
上面示例第一個是正確的定義位置參數(shù)的方式,第二個是錯誤的,因為位置參數(shù)在前,默認參數(shù)在后
def add1(x=1,y) 的定義會拋出如下異常
默認參數(shù)的函數(shù)調(diào)用
注意:定義默認參數(shù)默認參數(shù)最好不要定義為可變對象,容易掉坑
不可變對象:該對象所指向的內(nèi)存中的值不能被改變,int,string,float,tuple
可變對象,該對象所指向的內(nèi)存中的值可以被改變,dict,list
這里只要理解一下這個概念就行或者自行百度,后續(xù)會寫相關(guān)的專題文章講解
舉一個簡單示例
4.可變參數(shù)區(qū)別:定義函數(shù)時,有時候我們不確定調(diào)用的時候會多少個參數(shù),j就可以使用可變參數(shù)
可變參數(shù)主要有兩類:
*args: (positional argument) 允許任意數(shù)量的可選位置參數(shù)(參數(shù)),將被分配給一個元組, 參數(shù)名前帶*,args只是約定俗成的變量名,可以替換其他名稱
**kwargs:(keyword argument) 允許任意數(shù)量的可選關(guān)鍵字參數(shù),,將被分配給一個字典,參數(shù)名前帶**,kwargs只是約定俗成的變量名,可以替換其他名稱
*args 的用法
args 是用來傳遞一個非鍵值對的可變數(shù)量的參數(shù)列表給函數(shù)
語法是使用 符號的數(shù)量可變的參數(shù); 按照慣例,通常是使用arg這個單詞,args相當于一個變量名,可以自己定義的
在上面的程序中,我們使用* args作為一個可變長度參數(shù)列表傳遞給add()函數(shù)。 在函數(shù)中,我們有一個循環(huán)實現(xiàn)傳遞的參數(shù)計算和輸出結(jié)果。
還可以直接傳遞列表或者數(shù)組的方式傳遞參數(shù),以數(shù)組或者列表方式傳遞參數(shù)名前面加(*) 號
理解* * kwargs
**kwargs 允許你將不定長度的鍵值對, 作為參數(shù)傳遞給函數(shù),這些關(guān)鍵字參數(shù)在函數(shù)內(nèi)部自動組裝為一個dict
下篇詳細講解 *args, **kwargs 的參數(shù)傳遞和使用敬請關(guān)注