Python中的int函數(shù)使用
描述
int函數(shù)可以將一個指定進制的數(shù)字型字符串或者十進制數(shù)字轉(zhuǎn)化為整形。
語法
int(object, base)
名稱 | 說明 | 備注 |
object | 一個數(shù)字或字符串參數(shù) | 1. 數(shù)字參數(shù)可以是整數(shù)、浮點數(shù)(小數(shù)點表示和指數(shù)e表示皆可) 2. 字符串參數(shù)僅能包含在指定進制下所涵蓋的字符 3. 該參數(shù)可省略 |
base | 進制數(shù) | 1. 該參數(shù)可省略,省略時默認為10 2. 正整型參數(shù),表示object所對應的進制 |
舉例
1. 浮點數(shù)轉(zhuǎn)化為整型
test = [12.96, -34.21, 12.0e3] ? for number in test: ? ? print(int(number))
輸出結(jié)果為:
12
-34
12000
注意:無論浮點數(shù)的小數(shù)部分值是什么,使用int( )函數(shù)轉(zhuǎn)化時,只會保留整數(shù)部分,而將小數(shù)部分舍去。因此在求浮點數(shù)的四舍五入之類的問題時,應該避免直接使用int函數(shù)。
2. 二進制數(shù)轉(zhuǎn)化為十進制數(shù)
test = ['111011011111', '0b101'] ? for number in test: ? ? print(int(number, 2))
輸出結(jié)果為:
3807
5
3. 八進制數(shù)轉(zhuǎn)化為十進制數(shù)
test = ['-1537202', '0o147'] ? for number in test: ? ? print(int(number, 8))
輸出結(jié)果為:
-441986
103
4. 將十六進制數(shù)轉(zhuǎn)化為十進制數(shù)
test = ['34A', '0x17'] ? for number in test: ? ? print(int(number, 16))
輸出結(jié)果為:
842
23
5. 布爾值轉(zhuǎn)換為整數(shù)
Python里最簡單的數(shù)據(jù)類型是布爾型,它只有兩個可選值:True和False。當轉(zhuǎn)換為整數(shù)時,它們分別代表1和0:
>>> int(True) 1 >>> int(False) 0
6. 將整數(shù)字符串轉(zhuǎn)換為整數(shù)
可以將僅包含數(shù)字和正負號的字符串轉(zhuǎn)換為整數(shù)。
>>> int('99') 99 >>> int('-23') -23 >>> int('+12') 12
注意事項
1. 所有參數(shù)都省略時,返回整數(shù)0
test = int() print(test, type(test))
輸出結(jié)果為:
0 <class 'int'>
2. 試圖將一個浮點數(shù)字符串轉(zhuǎn)化為十進制整數(shù)時,會報錯:
test = '23.1314' print(int(test))
輸出結(jié)果為:
Traceback (most recent call last):
File "/Users/Test2.py", line 3, in <module>
print(int(test))
ValueError: invalid literal for int() with base 10: '23.1314'
返回一個值報錯:對于函數(shù)int,使用了無效的文字轉(zhuǎn)化成十進制:23.1314.
正確的使用方法是,現(xiàn)將浮點數(shù)字符串轉(zhuǎn)化為浮點數(shù)類型,再將浮點數(shù)類型轉(zhuǎn)化為整數(shù)。
test = '23.1314'? print(int(float(test)))
返回23.
注意:int()函數(shù)可以接受浮點數(shù)或由數(shù)字組成的字符串,但無法接受包含小數(shù)點或指數(shù)的字符串。
3. base參數(shù)錯誤
Python會自動計算base參數(shù)的使用范圍。若超出范圍會報錯:
test = '110'? print(int(test, -2))
輸出結(jié)果為:
Traceback (most recent call last):
File "/Users/Test2.py", line 3, in <module>
print(int(test, -2))
ValueError: int() base must be >= 2 and <= 36, or 0
根據(jù)object參數(shù)值,Python自動計算出base的合適區(qū)間。
4. 當object參數(shù)中存在非法字符時,Python報錯
例如,在八進制數(shù)字字符中引入字符‘A’,或者十六進制字符中引入字符‘H’
test = '110S'? print(int(test, 16))
輸出結(jié)果為:
Traceback (most recent call last):
File "/Users/Test2.py", line 3, in <module>
print(int(test, 16))
ValueError: invalid literal for int() with base 16: '110S'
5. 二進制符號0b、八進制符號0o、十六進制符號0x加入數(shù)字字符串中對結(jié)果沒有影響,且可以省略
test_0b = ['0b1011', '1011'] test_0o = ['0o735', '735'] test_0x = ['0xFA', 'FA'] ? for number in test_0b: ? ? print(int(number, 2)) ? for number in test_0o: ? ? print(int(number, 8)) ? for number in test_0x: ? ? print(int(number, 16))
輸出結(jié)果為:
11
11
477
477
250
250
6. 將一個十進制數(shù)轉(zhuǎn)化為十進制數(shù),沒有任何報錯也不會有任何意義
>>> int(5) 5
也可以將一個十進制整數(shù)字符串轉(zhuǎn)化為十進制(類型轉(zhuǎn)化)
>>> int('23') 23
7. 自定義進制轉(zhuǎn)化為十進制
int函數(shù)擁有強大的自定義進制轉(zhuǎn)化為十進制功能。例如,將17進制數(shù)字字符轉(zhuǎn)化為十進制數(shù)字:
test_17 = 'GG' print(int(test_17, 17))
輸出結(jié)果為:
288
8. 合法的數(shù)字字符字母不區(qū)分大小寫
例如在十六進制中,A和a都可以轉(zhuǎn)化成十進制數(shù),且轉(zhuǎn)化結(jié)果相同。
>>> int('a', 16) 10 >>> int('A', 16) 10
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Python數(shù)據(jù)類型轉(zhuǎn)換實現(xiàn)方法
這篇文章主要介紹了Python數(shù)據(jù)類型轉(zhuǎn)換的實現(xiàn),有時候,我們需要對數(shù)據(jù)內(nèi)置的類型進行轉(zhuǎn)換,數(shù)據(jù)類型的轉(zhuǎn)換,一般情況下你只需要將數(shù)據(jù)類型作為函數(shù)名即可2022-12-12python 讀取文件并把矩陣轉(zhuǎn)成numpy的兩種方法
今天小編就為大家分享一篇python 讀取文件并把矩陣轉(zhuǎn)成numpy的兩種方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-02-02Python3開發(fā)實例之非關系型圖數(shù)據(jù)庫Neo4j安裝方法及Python3連接操作Neo4j方法實例
這篇文章主要介紹了Python3開發(fā)實例之非關系型圖數(shù)據(jù)庫Neo4j安裝方法及Python3連接操作Neo4j方法實例,需要的朋友可以參考下2020-03-03Python浮點型(float)運算結(jié)果不正確的解決方案
這篇文章主要介紹了Python浮點型(float)運算結(jié)果不正確的解決方案,幫助大家更好的利用python進行運算處理,感興趣的朋友可以了解下2020-09-09