1. 程式人生 > >python3 常用資料型別轉換語法

python3 常用資料型別轉換語法

python3 常用資料型別轉換語法

函式 說明 int(x [,base ]) 將x轉換為一個整數 long(x [,base ]) 將x轉換為一個長整數 float(x ) 將x轉換到一個浮點數 complex(real [,imag ]) 建立一個複數 str(x ) 將物件 x 轉換為字串 repr(x ) 將物件 x 轉換為表示式字串 eval(str ) 用來計算在字串中的有效Python表示式,並返回一個物件 tuple(s ) 將序列 s 轉換為一個元組 list(s ) 將序列 s 轉換為一個列表 chr(x ) 將一個整數轉換為一個字元 unichr(x ) 將一個整數轉換為Unicode字元 ord(x ) 將一個字元轉換為它的整數值 hex(x ) 將一個整數轉換為一個十六進位制字串 oct(x ) 將一個整數轉換為一個八進位制字串

 

1、int型別

int型別的資料是沒有長度限制的,它的最大長度只與計算機的記憶體有關。

 

bin(i)      返回二進位制表示結果,
hex(i)      十六進位制,
int(i)       整數(如果x是浮點數就會返回其整數部分,
oct(i)      八進位制,
int(s,base)將字串轉換為整數.冪可以用**實現(10**5,2**4).內建的float與str型別都支援到整數的轉換。
chr()       將數字轉換成字元,
ord()       將字元轉換成ASCII碼;
round()   函式對值進行四捨五入。整數和浮點數相加結果是浮點型。

 

2、簡單比較兩個float是否相等

def equal_float(a,b):
              return abs(a-b)<=sys.float_info.epsilon

3、複數

複數的表示需在虛部後加一個j,如z=3.5+2j,其中實部和虛部可分別用z.real,z.imag取得。專用函式z.conjugate()可以反轉虛部的符號。

4、Decimal

特點:精度高,但計算速度比float慢,使用前需引進模組。

       a=decimal.Decimal(5555)或a=decimal.Decimal("555.555")

5、字串

對字串內使用的單引號或者雙引號,如果與最外層的相同則需要進行轉義,如果不同則可以直接使用。

字串轉義:

\newline 忽略換行,

\\           反斜槓,

\'            單引號,

\"           雙引號,

\a           蜂鳴,

\b           退格,

\f            走紙,

\n           換行,

\r           回車,

\t           製表符。

6、負索引

即從-1開始從末尾倒數。

7、字串的分片操作(seq[start:end];seq[start:end:step]

seq[start:end],表示兩個位置之間的字元(區間為左閉右開,即[start,end)),無start則預設為0,無end則預設為len(seq),

seq[:]表示整個字串。

字串的追加可用+=,但並不是特別高效,連線大量字串可用seq.join()。

"xx".join(seq)則可以將xx依次插入每兩個seq元素之間,形成一個str。

seq[star:end:step]與前一種類似,但是step不能為空,且必須大於0,即步長。

8、reversed()反轉一個集合內元素的排列順序。

9、字元查詢(index(),find())

    find()找到目標時返回該字元在字串中的索引位置,沒找到則返回-1;index()找到時也返回索引位置,沒找到則產生一個ValueError異常。函式前邊加r的(rfind(),rindex())表示逆序開始查詢。

    find()、index都可接受至多兩個可選引數(起點、終點):

    str.find("m",6)=str[6:].find("m")

    str.find("m",2,5)=str[2:5].find("m")

    類似的函式還有:str.count(),str.endswith(),str.startswith()。

10、字串分割partition(),rpartition(),split(),strip()

    patition()將字串分割為三段:關鍵字前,關鍵字,關鍵字後.

    split()將字串以關鍵字為分割點進行分割(結果不包含關鍵字)

    strip()將字串的首尾空格去掉,如果給了引數,就去掉首尾的引數,但引數必須是位於字串的首尾,不然去不掉.分支函式lstrip(),rstrip()為去掉左邊或者右邊的末端空格或字元.

11、字串的格式化 str.format()

       1>"a{0}cd{1}".format("one","two")。被替換字元用{}包圍,用數字格式表示時0,1依次表示format內給定引數的索引位置。如要想在替換後的字串中出現花括號,則需在原字串中進行復寫或三寫({{0}},{{{1}}})。對於3.1以上的python,{}內可以為空,不寫索引值,系統會預設次數下去為空的{}索引值為0,1,2,3...

       這種替換方法還可用來解決字串與數字連線會產生TypeError異常的問題。

       2>"a{who} was {0}".format(12,who="she")  欄位名替代索引方法如左,但如果同時存在欄位名和索引時,索引位置須放置在索引之前,如樣例中不能將0改成1而把對應的引數12放在第二位。

       3>對於一個集合(如:stock=["a","b","c"])可用:"{0[1]}{0[2]}".format(stock)

對於一個字典(如d=dic(a1="xx",a2="xxx")可用:"{0[a1]}{0[a2]}".format(d) 或者:"{a1}{a2}".format(**d)   **在此處為對映拆分操作符,對於已經賦值的變數也可結合內建的locals()函式以相似的方法達成替換,c="xx";d=34;"{c}ad{d}".format(**locals())。

       4>格式轉換(r,s,a)用法:{0!r}

       s-強制使用字串格式,r-強制使用表象形式,a-強制使用表象形式(只限於ASCII字元)

       5>字串格式規約(樣:"{0:*>10.25}"):以冒號開始,接著為充填字元(*),然後為對齊字元(>右對齊,<左對齊,^居中對齊),10為最小寬度,25為最大寬度,最大寬度前用"."引導。所有引數都是可選的,但如果指定了充填符就必須同時指定一個對齊符(對齊符可單獨出現,結果以空格充填)

       >整數格式規約(樣:"{0:0^+#15X):與字元的大致相同,+為可選,位於對齊與最小寬度之間(表示必須輸出正負號,還有-表示只用輸出負號,空格表示正數輸出空格負數輸出負號),#位於最小寬度之前,用於輸入當前資料型別,#也可以用0替換(表示用0進行充填,此充填法可不指定對齊方式);X表示輸出資料轉換型別(b二進位制,o八進位制,x小寫十六進位制,X大寫十六進位制,d十進位制,c輸出整數對應的Unicode字元,n表示場所敏感輸出方式:       import locale

       locale.setlocale(locale.LC_ALL,"C") #C為場所,也可用en_US.UTF-8替換

       c="{0:n}".format(55)

         )。整數規約沒有最大寬度!

       >小數格式規約:與整數一樣,但可以在最小寬度後加個以"."引導的整數來限定小數的位數。資料型別轉換處可用:e,E指數形式,f標準浮點形式,g通常格式,%百分數形式。

tips:輸出平方的上標 N\{SUPERSCRIPT TWO},右箭頭:\N{RIGHTWARDS ARROW}

 

12、字串操作函式

s.strip(chars)見上;
s.find(x,start,end)見上;
s.index(x.start,end)見上;
s.format()見上;
s.partition(x)見上;
s.replace(x,y,n)    用y替換x,可選n表示最多替換n次;
s.split(x,n)       最多分割n次,s.rsplit()從右邊開始分割;
s.splitlines(f)     返回在行終結符處進行分割產生的列表,並剝離行終結符(除非f為True);
s.count(x,start,end)  計數;
s.join(seq)       返回seq的每個項都以s連線起來的結果,s可以為空;
s.capitalize()       將字串首字母大寫;
s.lower()         將s中的字元變為小寫;
s.upper()         返回大寫化版本;
s.title()        將每個單詞的首字母大寫;
s.swapcase()      將大寫變小寫,小寫變大寫;
s.islower()       如果s至少有一個可小寫的字元且所有可小寫的字元都是小寫則返回True;
s.isupper()       如果s至少有一個可大寫的字元且所有可大寫的字元都是大寫則返回True;
s.istitle()       如果s是一個非空的首字母大寫字串,則返回True;
s.zfill(w)       返回s的副本,如果比w短,從開始處用0補充,使長度和w一樣;
s.center(width,char)  返回一個以s為中心長度為width的字串,如果有空餘則用可選引數char或空格進行填充,如width<len(s),則返回整個s;
s.ljust(width,char)  同上,左對齊;
s.rjust(width,char)  同上,右對齊;
s.encode(endoding,err) 返回一個bytes物件,該物件使用預設的編碼格式或指定的編碼格式來表示該字串,並根據可選的err引數處理錯誤;
s.endswith(x,start,end)如果以x結尾則返回True,否則返回False;
s.startswith(x,start,end)如果以x開始則返回True;
s.expandtabbs(size)  返回s的一個副本,其中的製表符使用8個或指定數量的空格替換;
s.isalnum()       判斷是否全是字母數字且非空;
s.isalpha()       判斷是否全是字母且非空;
s.isdecimal()      判斷是否每個字元都是Unicode的基數為10的數字;
s.isdigit()       判斷是否每個字元都是ASCII數字;
s.isidentifier()    判斷是否不為空
s.isnumeric()      判斷是否每個字元都是數值型的Unicode字元且非空;
s.isprintable()    判斷是否每個字元都是可列印的且非空;
s.isspace()       判斷是否每個字元都是空白字元;
s.maketrans()
s.translate()

 '''
基本資料型別
1:雖然python中的變數不需要宣告,但使用時必須賦值
                1.整形變數
                2.浮點型變數
                3.字元型
2:可以一個給多個變數賦值,也可以多個給多個變數賦值
3:python3中有6個標準資料型別
                *Number(數字)
                    *True=1
                    *False=0
                    *數值的除法(/)總是返回一個浮點數,要獲取整數使用//操作符
                    *在混合計算時,python會把整形轉換為浮點數
                *String(字串)
                    *字串用'或"括起來,同時使用\轉義特殊字串
                    *如果不想讓反斜槓發生轉義,可以在字串前面加個r表示原始字串
                    *索引值以0為開始,-1為末尾的開始位置
                    *加號+是字串的連線符,星號*表示複製當前的字串,緊跟的數字為複製的次數
                *List(列表)
                    *list寫在方括號之間,元素用逗號隔開
                    *和字串一樣,list可以被索引和切片
                    *list可以使用+操作符進行連線
                    *list中的元素可以改變的
                *Tuple(元組)
                    *元組與列表類似,不同之處在於元組的元素不能修改,元組寫在小括號裡。元素之間用逗號隔開
                    *元組也可以被索引和切片,方法一樣
                    *注意構造包含0或1個元素的元組的特殊語法規則
                    *元組也可以用+操作符進行拼接
                *Sets(集合)
                    *set是一個無需不重複的序列,基本功能是進行成員關係的測試和刪除重複元素
                Dictionary(字典)
                    *字典是一種對映型別,字典用{}標識,它是一個無序的建(key):值(value)對集合
                    *建(key)必須使用不可變型別。在同一個字典中建(key)必須是唯一的
                    *建立空字典使用{}
4:型別之間的轉換
        *int(x,base=10)x字串或數字,base進位制數,預設十進位制 浮點轉為整數
        *float 整數轉換為浮點型
        *complex(1,2) 轉換為複數
        *str(10)將物件轉換為字串
        *repe()將物件轉換為表示式字串
        *repr(dict)將物件轉換為表示式字串
        *eval(str)用來計算在字串中有效的python表示式,返回一個物件
        *tuple(listi)將列表轉化為元組
        *list()將元組轉換為列表
        *set轉換集合
 
'''

'''
基本資料型別
1:雖然python中的變數不需要宣告,但使用時必須賦值
                1.整形變數
                2.浮點型變數
                3.字元型
2:可以一個給多個變數賦值,也可以多個給多個變數賦值
3:python3中有6個標準資料型別
                *Number(數字)
                    *True=1
                    *False=0
                    *數值的除法(/)總是返回一個浮點數,要獲取整數使用//操作符
                    *在混合計算時,python會把整形轉換為浮點數
                *String(字串)
                    *字串用'或"括起來,同時使用\轉義特殊字串
                    *如果不想讓反斜槓發生轉義,可以在字串前面加個r表示原始字串
                    *索引值以0為開始,-1為末尾的開始位置
                    *加號+是字串的連線符,星號*表示複製當前的字串,緊跟的數字為複製的次數
                *List(列表)
                    *list寫在方括號之間,元素用逗號隔開
                    *和字串一樣,list可以被索引和切片
                    *list可以使用+操作符進行連線
                    *list中的元素可以改變的
                *Tuple(元組)
                    *元組與列表類似,不同之處在於元組的元素不能修改,元組寫在小括號裡。元素之間用逗號隔開
                    *元組也可以被索引和切片,方法一樣
                    *注意構造包含0或1個元素的元組的特殊語法規則
                    *元組也可以用+操作符進行拼接
                *Sets(集合)
                    *set是一個無需不重複的序列,基本功能是進行成員關係的測試和刪除重複元素
                Dictionary(字典)
                    *字典是一種對映型別,字典用{}標識,它是一個無序的建(key):值(value)對集合
                    *建(key)必須使用不可變型別。在同一個字典中建(key)必須是唯一的
                    *建立空字典使用{}
4:型別之間的轉換
        *int(x,base=10)x字串或數字,base進位制數,預設十進位制 浮點轉為整數
        *float 整數轉換為浮點型
        *complex(1,2) 轉換為複數
        *str(10)將物件轉換為字串
        *repe()將物件轉換為表示式字串
        *repr(dict)將物件轉換為表示式字串
        *eval(str)用來計算在字串中有效的python表示式,返回一個物件
        *tuple(listi)將列表轉化為元組
        *list()將元組轉換為列表
        *set轉換集合

'''
print('------------------1----------------')
a=100#整形變數
b=100.0#浮點型變數
c='zifuxing'#字串
print(a,b,c)
print('---------------------2------------------')
a=b=c=1
print(a,b,c)
a,b,c=1,2,3
print(a,b,c)
print('--------------------3-------------------')
print('Number 數字')
a,b,c=20,5.5,True
#type可以查詢變數所指的資料型別
print(type(a),type(b),type(c))
#也可以用isinstance來判斷
# type()不會認為子類是一種父類型別
#isinstance()會認為子類是一種父類型別
print('String 字串')
str1='zifuchuan'
print(str1[0:-1])#輸出第一個到倒數第二個
print(str1[0])#輸出第一個字串
print(str1[2:5])#輸出第三個到第五個字串
print(str1[2:])#輸出第三個後面所有的字串
print(str1*2)#輸出字串2次
print(str1+'Test')#連結字串
print('列表')
listp=['abc',768,2.33,'liebiao',70.2]
tinylist=[123,'liebiao']
print(listp)#輸出完整列表
print(listp[0])#輸出列表的第一個元素
print(listp[1:3])#輸出第二個元素到第三個元素
print(listp[2:])#輸出第三個元素開始的所有元素
print(tinylist*2)#輸出兩次列表
print(listp+tinylist)#連結兩個列表
#該變列表中的元素
a=[1,2,3,4,5,6]
a[0]=9
a[2:5]=[13,14,5]
a[2:5]=[]#可以刪除所指定的元素
print('Tuple 元組,用法跟上面的一樣但修改不了元素')
print('set 集合')
student={'Tom','Jim','Mary','Tom','Jack','Rose'}
print(student)#輸出集合,重複的元素被自動去掉
if 'Rose' in student:
    print('Rose 在集合中')
else:
    print('Rose不在集合中')
#set可以進行集合運算
a=set('abra')
b=set('alac')
print(a)#set可以去重複所以輸出啊a,b,r
print(a-b)#a和b的差
print(a|b)#a和b,的並集
print(a&b)#a和b的交集
print(a^b)#a和b不同時存在的元素
print('Dictionary 字典')
tinydict={'name':'runoob','code':'1','site':'www.runoob.com'}
print(tinydict)#輸出完整的字典
print(tinydict.keys())#輸出所有的建
print(tinydict.values())#輸出所有的值
print('----資料型別轉換--------')
print(int(3.6))#浮點數轉換為整數
print(float(1))#整數轉換為浮點數
print(float('123'))#字串轉為浮點數
print(complex(1,2))#整數為複數
print(complex('1'))#字串為負數
dict={'runoob':'runoob.com','google':'goole.com'}
print(str(dict))
i=int(10)
print(str(i))
print(repr(dict))
x=7
print(eval('3*x'))#可以操作字串
listi=['Google','Taobao','Runoob','Baidu']
print(tuple(listi))
tpo=tuple(listi)
t=('1','2','3')
print(list(t))
print(tpo)
x=set('runoob')
y=set('google')
print(x,y)