Python小知識:如何在Python 3中轉換資料型別

千鋒Python唐小強發表於2020-09-25

寫在前面:

在Python中,資料型別用於對一種特定型別的資料進行分類,確定可以分配給該型別的值以及可以對其執行的操作。

這裡主要講述轉換數字,字串,元組和列表,並提供示例以幫助各位熟悉不同的用例。

轉換數字型別

在Python中,有兩種數字資料型別:整數和浮點數或浮點數。

將整數轉換為浮點數

Python的方法float()會將整數轉換為浮點數。要使用此功能,請在括號內新增一個整數:

float(57)

在這種情況下, 57將轉換為57.0 。

您也可以將其與變數一起使用。讓我們宣告f等於57 ,然後列印出新的float:

f = 57

print( float(f))
Output  57.0透過使用 float()函式,我們可以將整數轉換為浮點數。
Python小知識:如何在Python 3中轉換資料型別

將浮點數轉換為整數

Python還有一個內建函式將float轉換為整數:int() 。

int()函式的作用類似於float()函式:在括號內新增一個浮點數,以將其轉換為整數:

int(390.8)

在這種情況下, 390.8將轉換為390 。

也可以將其與變數一起使用。讓我們宣告b等於125.0 , c等於390.8 ,然後列印出新的float: 

b = 
125.0

c =  390.8
print( int(b))
print( int(c))



Output

    125
390

當使用int()函式將浮點數轉換為整數時,Python會截斷浮點數的小數和剩餘數字以建立一個整數。即使我們可能希望將390.8舍入為391,Python也不會透過int()函式來完成此操作。

數字轉換為除法

在Python 3中,相關的商在進行除法運算時會從整數轉換為浮點數,儘管它們不在Python 2中 。也就是說,將5除以2時,在Python 3中,會得到一個浮點數(2.5):


a = 
5 / 
2

print(a)



Output

   2 .5

在Python 2中,由於要處理兩個整數,因此將會收到一個整數作為答案,而不是:5 / 2 = 2 。

用字串轉換

字串是一個或多個字元(字母,數字,符號)的序列。字串是計算機程式中資料的一種常見形式,我們可能需要經常將字串轉換為數字或將數字轉換為字串,尤其是在接收使用者生成的資料時。

將數字轉換為字串

我們可以使用str()方法將數字轉換為字串。我們將數字或變數傳遞到方法的括號中,然後該數字值將轉換為字串值。

讓我們首先看一下轉換整數。要將整數12轉換為字串值,可以將12傳遞給str()方法:

str(12)

在終端視窗中使用python命令在Python互動式外殼中執行str(12)時,將收到以下輸出:

Output

數字12周圍的引號表示該數字不再是整數,而是一個字串值。

使用變數,我們可以開始瞭解將整數轉換為字串的實用性。假設我們要跟蹤使用者的日常程式設計進度,並輸入他們一次編寫多少行程式碼。我們希望向使用者顯示此反饋,並將同時列印出字串和整數值:

user = 
"Sammy"

lines50
print( "Congratulations, " + user +  "! You just wrote " + lines" lines of code.")
當我們執行此程式碼時,我們收到以下錯誤:
Output

我們無法在Python中連線字串和整數,因此我們必須將變數lines轉換為字串值:

user = 
"Sammy"

lines50
print( "Congratulations, " + user +  "! You just wrote " + str( lines) +  " lines of code.")

現在,當我們執行程式碼時,我們收到以下輸出,祝賀我們的使用者前進:

Output

 Congratulations, Sammy! You just wrote  50  lines of code.

如果希望將浮點數轉換為字串,而不是將整數轉換為字串,請遵循相同的步驟和格式。當我們將float傳遞給str()方法時,將返回float的字串值。我們可以使用float值本身或變數:


print(str(
421.034))

f =  5524.53
print(str(f))

Output

   421 .034
5524 .53

我們可以透過連線一個字串來測試以確保它是正確的:


f = 
5524.53

print( "Sammy has " + str(f) +  " points.")
Output

我們可以確定我們的浮點數已正確轉換為字串,因為連線已正確執行。

將字串轉換為數字

可以使用int()和float()方法將字串轉換為數字。

如果您的字串沒有小數位,您很可能希望使用int()方法將其轉換為整數。

讓我們以使用者Sammy跟蹤每天編寫的程式碼行為例。我們可能希望透過數學操作這些值,以為使用者提供更多有趣的反饋,但是這些值當前儲存在字串中:


lines_yesterday"50"

lines_today =  "108"
lines_more = lines_today - lines_ yesterday
print(lines_more)
Output 

TypeError: uns

由於兩個數值儲存在字串中,因此我們收到了錯誤訊息。運算元-減法不是兩個字串值有效的運算元。

讓我們修改程式碼以包括int()方法,該方法會將字串轉換為整數,並允許我們使用原始字串的值進行數學運算。

lines_yesterday = 
"50"

lines_today =  "108"
lines_more =  int(lines_today) -  int(lines_yesterday)
print(lines_more)

Output  

58

變數lines_more自動是一個整數,在此示例中,它等於數值58。

我們還可以使用float()方法代替int()方法,將上述示例中的數字轉換為float值。而不是接收58的輸出,我們將接收58.0的輸出,即浮點數。

使用者Sammy用十進位制值贏得積分


total_points"5524.53"

new_points =  "45.30"
new_total_points = total_points + new_pointsprint(new_total_points)
Output

在這種情況下,將+運算元與兩個字串一起使用是有效的操作,但它是將兩個字串連線在一起,而不是將兩個數值加在一起。因此,我們的輸出看起來很不尋常,因為它只是將兩個值彼此相鄰放置。

在使用float()方法執行任何數學運算之前,我們希望將這些字串轉換為浮點數:

total_points = 
"5524.53"

new_points =  "45.30"
new_total_points =  float(total_points) +  float(new_points) 
print(new_total_points)

Output   

5569 .83

現在,我們已經將兩個字串轉換為浮點數,我們收到了將45.30新增到5524.53的預期結果。

如果我們嘗試將帶小數位的字串值轉換為整數,則會收到錯誤訊息:

f = 
"54.23"

print( int(f))
Output

如果將字串中的十進位制值傳遞給int()方法,則會收到錯誤訊息,因為它不會轉換為整數。

將字串轉換為數字使我們能夠快速修改正在使用的資料型別,以便我們可以對最初轉換為字串的數值執行操作。

轉換為元組和列表

可以使用方法list()和tuple()將傳遞給它們的值分別轉換為list和tuple資料型別。在Python中:


  • 列表是包含在方括號[ ]的可變的有序元素序列。
  • 元組是括號( )包含的元素的不可變有序序列。

轉換為元組

從列表轉換為元組開始。


將列表轉換為元組是一種不可變的資料型別,因此可以對我們建立的程式進行實質性的最佳化。當我們使用方法tuple() ,它將返回傳遞給它的值的元組版本。

print(tuple(['pull request', 'open source', 'repository', 'branch']))
Output

我們看到輸出中已列印出一個元組,因為這些項現在包含在括號中而不是方括號中。

讓我們將tuple()與代表列表的變數一起使用:


sea_creatures = [
'shark''cuttlefish''squid''mantis shrimp']

print(tuple(sea_creatures))
Output

再次,我們看到列表值更改為元組值,由括號表示。我們可以將任何可迭代型別轉換為元組,包括字串

print(tuple('Sammy'))

Output

因為我們可以遍歷字串,所以可以使用tuple()方法將它們轉換為元tuple() 。但是,對於不可迭代的資料型別,例如整數和浮點數,我們將收到型別錯誤:

print(tuple(5000))
Output

儘管可以將整數轉換為字串,然後轉換為元組,如tuple(str(5000)) ,但最好選擇可讀程式碼,而不要進行復雜的轉換。

轉換為列表

當需要該值的可變版本時,將值(尤其是元組)轉換為列表會很有用。

我們將使用list()方法將以下元組轉換為列表。因為建立列表的語法使用括號,所以請確保包括list()方法的括號,在這種情況下, print()方法:

print(list(('blue coral', 'staghorn coral', 'pillar coral')))
Output

方括號表示已透過list()方法傳遞的原始元組值返回了list() 。

為了使程式碼更具可讀性,我們可以使用變數來刪除一對括號中的一對:

coral = (
'blue coral''staghorn coral''pillar coral')

list(coral)如果我們列印 list(coral)我們將收到與上述相同的輸出。就像元組一樣,字串也可以轉換為列表: print( list( 'shark'))Output在這裡,字串 'shark'被轉換為列表,提供了原始值的可變版本。 結論該Python教程演示瞭如何主要透過內建方法將幾種重要的本機資料型別轉換為其他資料型別。能夠在Python中轉換資料型別為您在編寫程式時提供了額外的靈活性。

有不清楚的地方,大家可以留言!


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69923331/viewspace-2724001/,如需轉載,請註明出處,否則將追究法律責任。

相關文章