国产精品亚洲AV三区_国产精品日本一区二区在线播放_国产成人无码久久久精品一_性感美女视频在线观看免费精品

更多精彩內容,歡迎關注:

視頻號
視頻號

抖音
抖音

快手
快手

微博
微博

python強制類型轉換

文檔

python強制類型轉換

python強制類型轉換,也稱為數據類型的顯示轉換,是通過Python的內建函數來實現的類型轉換,包括多種函數的操作轉換。
推薦度:
導讀python強制類型轉換,也稱為數據類型的顯示轉換,是通過Python的內建函數來實現的類型轉換,包括多種函數的操作轉換。

python強制類型轉換有哪些方法?一起來看看小編今天的分享吧。

數據類型的強制類型轉換,也稱為數據類型的顯示轉換,是通過Python的內建函數來實現的類型轉換。

顯式轉換的多種類型:

int(x [,base]) ? 將x轉換為一個十進制的整數long(x [,base]) ? 將x轉換為一個十進制的長整數float(x) ? 將x轉換為一個浮點數str(object) ? 轉換為字符串repr(object) ? 轉換為表達式字符串eval(str) ? 用來計算在字符串中的有效Python表達式,并返回一個對象tuple(seq) ? 將序列seq轉換為一個元組list(seq) ? 將序列seq轉換為一個列表chr(x ) ? 將一個整數轉換為一個字符unichr(x ) ? 將一個整數轉換為Unicode字符ord(x ) ? 將一個字符轉換為它的整數值hex(x ) ? 將一個整數轉換為一個十六進制字符串oct(x ) ? 將一個整數轉換為一個八進制字符串

下面詳細介紹一些常用的類型轉換。

一、Non-String轉換為String

str()函數

str(object=”) -> stringReturn a nice string representation of the object.If the argument is a string, the return value is the same object.str()是最常用的轉換為String的內建函數,可以接受任意對象,并將其轉換為String類型。若object為String類型,則返回一個同類型的對象。將List對象轉換為String:

In?[13]:?li
Out[13]:?['My',?'Name',?'Is',?'Jmilk']
In?[14]:?strLi?=?str(li)
In?[15]:?print?strLi[0]
[

將Tuple對象轉換為String:

In?[19]:?tup?=?('my','name','is','jmilk')
In?[20]:?str(tup)
Out[20]:?"('my',?'name',?'is',?'jmilk')"
In?[22]:?str(tup)[3]
Out[22]:?'y'

將Dictionary對象轉換為String:

In?[23]:?dic?=?{'name':'Jmilk','age':23}
In?[24]:?str(dic)
Out[24]:?"{'age':?23,?'name':?'Jmilk'}"
In?[25]:?str(dic)[3]
Out[25]:?'g'

上面3個例子可以發現,在轉換為String后無論是原來的特殊符號還是空格符都會成為String的元素之一。

repr()

repr(object) -> stringReturn the canonical string representation of the object.For most object types, eval(repr(object)) == object.repr()函數的使用方法于str()函數類似,都是傳入一個任意對象,再返回一個String類型對象,但兩者卻有著本質的區別。

str()和repr()的區別

主要的區別就在repr()支持eval(repr(object)) == object。str()函數的目標是一般用戶的可讀性,返回一個更適合人閱讀的nice string。而repr()則返回一個更適合python解析器閱讀的canonical strng,同時會返回Python解析器能夠識別的數據細節,但這些細節對一般用戶來說是多余的。而且repr()轉換后的String對象可以通過求值運算eval()來還原到轉換之前的對象,相比之下str()通常不需要eval()去處理。

In?[61]:?name?=?('My?name?is?Jmilk
')
In?[62]:?print?str(name)
My?name?is?Jmilk
In?[63]:?print?repr(name)'My?name?is?Jmilk
'

上面例子可以看出str()打印出來的字符串會更符合人的閱讀習慣。

eval()

eval()函數,能夠結合repr()函數將一個經過轉換為Strng類型后的對象還原為轉換之前的對象類型。同時eval()也被稱為求值運算,可以將字符串str當成有效的表達式來求值并返回計算結果。

In?[64]:?name?=?('My?name?is?Jmilk
')
In?[65]:?name1?=?str(name)
In?[66]:?name1Out[66]:?'My?name?is?Jmilk
'
In?[67]:?name2?=?repr(name)
In?[68]:?name2Out[68]:?"'My?name?is?Jmilk\n'"
In?[69]:?eval(name1)
??File?"",?line?1
????My?name?is?Jmilk
??????????^
SyntaxError:?invalid?syntax
In?[70]:?eval(name2)Out[70]:?'My?name?is?Jmilk
'

eval(str(Object))可能會報錯,無法還原為原來的對象型。而eval(repr(object))卻可以還原,下面例子:

In?[81]:?name?=?('My','name','is','Jmilk
')
In?[82]:?repr(name)Out[82]:?"('My',?'name',?'is',?'Jmilk\n')"
In?[83]:?eval(repr(name))Out[83]:?('My',?'name',?'is',?'Jmilk
')
In?[84]:?type(eval(repr(name)))Out[84]:?tuple

總結:這是因為str()函數主要是為了讓人能夠更好的閱讀其內容,而rper()除了轉換為String類型外,還能夠被Python解析器識別其數據細節,從而repr()轉換后的字符串能夠被當作有效表達式來處理。注意:eval()函數最主要的功能是能夠將字符串中有效的表達式進行計算并返回一個對象。如下:

In?[141]:?sum?=?'100+10'
In?[142]:?eval(sum)
Out[142]:?110

二、Non-int轉換為int

Int型的最大值僅與系統位數有關,32位:maxInt == 2**(32-1)-1 ; 64位:maxInt == 2**(64-1)-1。可以通過sys.maxint來查看:

In?[42]:?sys.maxint
Out[42]:?9223372036854775807
In?[43]:?2**63-1
Out[43]:?9223372036854775807L

在Python2.4x版本之后為Int增加了Long的隱式轉換來防止數據范圍溢出。int(x[, base=10]) -> int or longbase:指定進制x:通常為一個Stringbase指定了x的進制

Long轉換為Int,使用自定義函數

當一個Long > sys.maxint(2**63-1)時,Long類型對象是無法轉換為Int的。例如:

In?[79]:?int(2**63)
Out[79]:?9223372036854775808L?????#仍為Long類型

下面使用一個自建的函數來實現當Long > sys.maxint時的Long到Int的強制類型轉換。需要實現兩個方面,一個是轉換數值(不能超過maxint),另一個是轉換類型為int。轉換數值:

In?[130]:?%pycat?longToInt.pyimport?sysdef?longToInt(value):
????if?value?>?sys.maxint:
????????return?(value?&?sys.maxint)
????else:
????????return?value
if?__name__?==?'__main__':
????number?=?2**63
????result?=?longToInt(number)
????print?'number?-?sys.maxint?=?%s?-?%s?=?%s'?%?(number,sys.maxint,result)
????print?'result?is?%s,result?type?is?%s;number?type?is?%s'?%?(result,type(result),type(number))
?
In?[131]:?run?longToInt.py
number?-?sys.maxint?=?9223372036854775808?-?9223372036854775807?=?1
result?is?0,result?type?is?;number?type?is

上例:當number-sys.maxint=1時,將Long型number的數值轉化為0輸出。即當一個int類型的數值超過sys.maxint時,再將多余于的數值環回計數。以此類推,當number-sys.maxint=101時,Long型的number的環回計數為100。需要注意的是:盡管數值是大于maxint,但是其數據類型仍然為long,可以使用int()函數將環回的數值轉化為Int型,且只能在轉換數值后才能成功額轉換類型。轉換類型:

In?[136]:?%pycat?longToInt.pyimport?sysdef?longToInt(value):
????if?value?>?sys.maxint:
????????return?(value?&?sys.maxint)
????else:
????????return?value
if?__name__?==?'__main__':
????number?=?2**63+100
????result?=?longToInt(number)
????print?'number?-?sys.maxint?=?%s?-?%s?=?%s'?%?(number,sys.maxint,result+1)
????print?'result?is?%s,result?type?is?%s;number?type?is?%s'?%?(result,type(int(result)),type(number))
?
In?[137]:?run?longToInt.py
number?-?sys.maxint?=?9223372036854775908?-?9223372036854775807?=?101
result?is?100,result?type?is?;number?type?is

Float轉換為Int

浮點型轉為整型會進行向下取整。

In?[130]:?int(10.9)
Out[130]:?10

String轉換為Int

In?[131]:?int('0xa',16)Out[131]:?10
In?[132]:?int('1010',2)Out[132]:?10

參數16表示’0xa’為16進制數,int()轉換以后獲得10進制數,若不指明’0xa’的進制,則會報錯。

In?[133]:?int('0xa')
ValueError:?invalid?literal?for?int()?with?base?10:?'0xa'

三、Non-long轉化為long類型

long(x=0) -> longlong(x, base=10) -> long生成一個long對象:

In?[24]:?long(10)
Out[24]:?10L

也可以簡單的實現:

In?[138]:?num?=?10L
In?[139]:?type(num)Out[139]:?long
Int轉化為Long

int型轉換為long型不需要強制類型轉換,這就是相對的隱式類型轉換,系統會在后臺完成。在后面的博文中再作介紹。

Float轉換為Long

向下取整

In?[27]:?long(10.9)
Out[27]:?10L

String轉換為Long

In?[33]:?long('0xa',16)
Out[33]:?10L
In?[34]:?long('1010',2)
Out[34]:?10L

可以看出,Int與Long類型的數據非常類似,唯一的區別在于,Long類型的數據范圍更加大。(Int)

四、Non-float轉換為float

float(x) -> floating point numberConvert a string or number to a floating point number, if possible.可以接收Int和String類型參數,float()函數在連接數據庫操作會被經常使用。當參數為String時,只能出現數字和一個點額任意組合,若出現多個點號,則會出現異常。

In?[194]:?float(10)
Out[194]:?10.0
In?[195]:?float('100')
Out[195]:?100.0
In?[199]:?float('.1111')
Out[199]:?0.1111
In?[204]:?float('.98.')---------------------------------------------------------------------------
ValueError????????????????????????????????Traceback?(most?recent?call?last)?in?()---->?1?float('.98.')
ValueError:?invalid?literal?for?float():?.98.

Sequence轉換為List

list(iterable) -> new list initialized from iterable’s items使用迭代器中的元素生成一個新的列表

五、String轉換為List

將字符串中的每一個字母作為列表中的一個元素,空格也算是一個元素。

In?[137]:?name?=?'My?name?is?Jmilk'
In?[138]:?list(name)Out[138]:
['M',
?'y',
?'?',
?'n',
?'a',
?'m',
?'e',
?'?',
?'i',
?'s',
?'?',
?'J',
?'m',
?'i',
?'l',
?'k']

Tuple轉換為List

Tuple轉換為List與String其實大同小異:

In?[1]:?tup?=?('My','name','is','Jmilk')
In?[2]:?list(tup)
Out[2]:?['My',?'name',?'is',?'Jmilk']

將Tuple對象中的每一個元素轉換為List中的每個元素。

Sequence轉換為Tuple

tuple(iterable) -> tuple initialized from iterable’s items利用迭代器中的元素生成新的元組

六、String轉換為Tuple

In?[5]:?str?=?'My?name?is?Jmilk!'
?
In?[6]:?tuple(str)
Out[6]:
('M',
?'y',
?'?',
?'n',
?'a',
?'m',
?'e',
?'?',
?'i',
?'s',
?'?',
?'J',
?'m',
?'i',
?'l',
?'k',
?'!')

類似String轉換為List,空格任然算一個元素。

List轉換為Tuple

In?[9]:?li
Out[9]:?['My',?'name',?'is',?'Jmilk']
In?[10]:?tuple(li)
Out[10]:?('My',?'name',?'is',?'Jmilk')

七、將List和Tuple復合數據類型轉換為Dictionary

格式:dict([(key1,value1),..])

In?[144]:?li?=?['name','age','city']
In?[145]:?tup?=?('jmilk',23,'BJ')
In?[146]:?zip(li,tup)
Out[146]:?[('name',?'jmilk'),?('age',?23),?('city',?'BJ')]
In?[148]:?dict(zip(li,tup))
Out[148]:?{'age':?23,?'city':?'BJ',?'name':?'jmilk'}

Dictionary轉換為List

相對的,Dictionary的鍵值對也能夠轉換為List和Tuple的復合數據類型。D.items() -> list of D’s (key, value) pairs, as 2-tuples

In?[159]:?dic
Out[159]:?{'age':?23,?'city':?'BJ',?'name':?'jmilk'}
In?[160]:?dic.items()
Out[160]:?[('city',?'BJ'),?('age',?23),?('name',?'jmilk')]

八、Int轉換為字符char

chr(i) -> characterReturn a string of one character with ordinal i; 0 <= i < 256.以整數所對應的ASCII碼來轉換為Char,i屬于[0,256)。

In?[174]:?chr(65)
Out[174]:?'A'
?
In?[175]:?chr(97)
Out[175]:?'a'

強制數據類型轉換在編程過程中國非常常見,且在對內存、時間等運行環境要求嚴格的程序中尤為重要。

以上就是小編今天的分享了,希望可以幫助到大家。?

文檔

python強制類型轉換

python強制類型轉換,也稱為數據類型的顯示轉換,是通過Python的內建函數來實現的類型轉換,包括多種函數的操作轉換。
推薦度:
為你推薦
資訊專欄
熱門視頻
相關推薦
python查看已安裝的包 python判斷字符串相等 python內置函數 python遞歸函數 python類的繼承 python string函數 python構造函數 python延時函數 debug error怎么解決 python讀取json并解析 python 列表添加 python字典按值的大小排序 python 排序算法 spring boot mysql配置 vue動態綁定style js date加一天 字符轉換成ascii碼 c語言struct用法 java reentrantlock python tkinter教程 python input函數怎么用 python類型轉換 python split函數用法 python讀取json python組合數據類型 python查看變量類型 python split函數 c++ template用法 老抽和生抽的區別 拉鏈下滑如何解決 防藍光眼鏡怎么辨別 蔥怎么保存 老姜和生姜的區別 新鮮蘑菇怎么保存 豬腳和豬手有什么區別 亞麻籽油是什么油 白茶保存方法和時間 水晶粉是什么面粉 艾素糖是什么糖 奶酪棒是什么做的
Top 国产精品亚洲AV三区_国产精品日本一区二区在线播放_国产成人无码久久久精品一_性感美女视频在线观看免费精品
<strike id="cakm0"></strike>
  • <button id="cakm0"><dl id="cakm0"></dl></button>
  • <samp id="cakm0"><tbody id="cakm0"></tbody></samp>
    <samp id="cakm0"><pre id="cakm0"></pre></samp><ul id="cakm0"></ul>
    <strike id="cakm0"></strike>
    <li id="cakm0"></li>
  • <ul id="cakm0"></ul>
  • 亚洲精品久久视频| 免费成人av在线看| 精品91视频| 欧美天堂亚洲电影院在线观看| 欧美在线观看一区| 一区二区三区免费在线观看| 伊人春色精品| 国产夜色精品一区二区av| 欧美日韩亚洲成人| 欧美金8天国| 免费在线观看成人av| 久久久久国色av免费看影院| 亚洲免费视频网站| 亚洲午夜精品在线| 一区二区激情小说| 亚洲美女中出| 夜夜躁日日躁狠狠久久88av| 亚洲精品久久7777| 亚洲每日更新| 99精品免费视频| av72成人在线| 一区二区欧美精品| 亚洲一区二区三区午夜| 中文在线不卡| 亚洲欧美日韩国产综合精品二区 | 欧美激情网友自拍| 六月婷婷久久| 欧美黄色日本| 欧美亚洲第一区| 国产精品视频专区| 国产日韩欧美一区二区三区四区| 国产精品毛片在线| 国产视频综合在线| 红桃av永久久久| 亚洲国产另类久久久精品极度| 亚洲黄一区二区三区| 亚洲黄色小视频| 中文国产一区| 欧美一区综合| 男女激情视频一区| 欧美日韩视频不卡| 国产亚洲精品bv在线观看| 激情综合亚洲| 一区二区成人精品| 欧美一区二区视频网站| 另类成人小视频在线| 欧美精品久久一区| 国产日韩欧美精品| 亚洲激情在线播放| 午夜精品一区二区三区在线播放 | 国产一区深夜福利| 亚洲国产裸拍裸体视频在线观看乱了中文 | 国产日韩欧美精品综合| 国内一区二区三区| 日韩一级大片| 久久精品国产亚洲一区二区| 欧美高清在线视频| 国产情侣一区| 日韩一区二区免费看| 欧美一区二区视频在线观看| 免费在线观看一区二区| 国产精品视频九色porn| **欧美日韩vr在线| 香蕉久久国产| 欧美日韩中文字幕精品| 亚洲高清在线视频| 欧美一级大片在线免费观看| 欧美精品福利视频| 一区二区三区在线免费播放| 亚洲视频精选在线| 欧美激情第二页| 亚洲电影免费在线| 久久精品视频播放| 国产精品人人爽人人做我的可爱| 亚洲国产91| 久久久久久亚洲精品中文字幕| 国产精品av免费在线观看| 亚洲国产色一区| 久久久久久噜噜噜久久久精品| 国产精品成人一区二区艾草| 亚洲精品国产无天堂网2021| 久久久久国产一区二区三区| 国产欧美一区二区三区视频| 亚洲少妇在线| 国产精品成人一区二区网站软件| 亚洲美女黄色| 欧美日韩亚洲一区三区 | 欧美成人一区在线| 伊人久久久大香线蕉综合直播| 欧美一区二区在线视频| 国产欧美精品一区二区色综合 | 在线视频亚洲欧美| 欧美美女福利视频| 一本色道久久综合精品竹菊| 欧美国产欧美亚洲国产日韩mv天天看完整 | 国产精品v亚洲精品v日韩精品| 亚洲欧洲综合另类在线| 欧美国产视频在线观看| 亚洲激情国产精品| 欧美精品一区二区三区在线播放| 亚洲精品网站在线播放gif| 欧美伦理91i| 亚洲一区二区视频| 国产亚洲成年网址在线观看| 久久国产88| 1769国内精品视频在线播放| 久久综合电影| 一区二区久久久久| 国产精品中文字幕欧美| 久久精品午夜| 亚洲人成在线观看网站高清| 欧美日韩国产精品一区二区亚洲| 中文欧美字幕免费| 国产在线观看91精品一区| 另类酷文…触手系列精品集v1小说| 亚洲国产精品久久久| 欧美色图麻豆| 久久久精品久久久久| 亚洲精品久久久久中文字幕欢迎你| 欧美日韩国产小视频| 欧美一区二区三区播放老司机| 一区在线免费| 欧美午夜精品久久久久免费视 | 欧美在现视频| 最近中文字幕日韩精品 | 欧美一区二区三区在线观看视频| 在线精品观看| 国产精品久久久久久久久搜平片 | 欧美xx视频| 亚洲欧美一区二区原创| 亚洲电影第1页| 国产精品一二三| 欧美夫妇交换俱乐部在线观看| 亚洲午夜一区二区三区| 在线观看91久久久久久| 国产精品捆绑调教| 欧美国产日韩免费| 久久国产精品久久久久久久久久| 日韩视频久久| 在线欧美三区| 国产综合自拍| 国产精品一二三| 欧美先锋影音| 欧美激情bt| 免费亚洲电影在线| 久久精品亚洲精品| 亚洲欧美日韩成人| 中国日韩欧美久久久久久久久| 亚洲国产高清视频| 激情综合久久| 合欧美一区二区三区| 国产精品一区久久久| 欧美性大战久久久久久久蜜臀| 欧美大片在线观看一区| 久久综合激情| 久久综合网hezyo| 久久野战av| 久久网站免费| 久热精品视频在线免费观看| 亚洲欧美日韩一区| 亚洲欧美一级二级三级| 亚洲欧美综合精品久久成人| 亚洲一区二区三区中文字幕在线 | 国产精品久久久久久久久久久久| 欧美精品1区2区| 欧美连裤袜在线视频| 欧美激情日韩| 欧美日韩亚洲在线| 国产精品国产福利国产秒拍| 国产精品国产三级国产专播精品人| 欧美三级午夜理伦三级中视频| 欧美三区在线| 国产精品一区久久| 韩国成人理伦片免费播放| 一区二区在线观看视频在线观看| 一区二区三区自拍| 亚洲黄色大片| 这里只有精品在线播放| 午夜天堂精品久久久久| 久久av二区| 欧美激情一区| 国产精品福利影院| 国产亚洲欧美激情| 亚洲高清激情| 一区二区三区视频免费在线观看| 亚洲一区二区三区久久| 久久国产欧美精品| 美女免费视频一区| 欧美日韩精品| 国产一区二区三区四区三区四| 亚洲第一天堂av| 亚洲亚洲精品在线观看 | 米奇777在线欧美播放| 欧美日韩123| 国产午夜亚洲精品理论片色戒| 亚洲国产精品va在线看黑人动漫| 99视频精品全部免费在线| 欧美一区午夜精品| 欧美精品一区二区三区视频| 国产伦精品一区二区三区四区免费 |