Python內置函數int()高級用法

2021-02-20 Python小屋

int()函數常用來把其他類型轉換為整數,例如:

>>> int(3.2)

3
>>> int(1/3)
0

其實,int是Python內置類型之一,之所以能夠當作函數來用,是因為它提供了構造方法。另外,它還提供了第二個參數支持更多功能,例如:

>>> int('1111', 8)

585

上面的問題是不是很熟悉呢?這也是我的15個讀者群入群門檻問題之一,但是很多人進不來,說題不會做,不會做不要緊啊,隨便在任何Python開發環境中執行一下就可以了,如果這還不會的話,你很可能是個假讀者,或者還不了解Python,沒入門呢。

int()函數可以把實數類型轉換為整數,並且是向下取整,也就是在數軸上向左取整,簡單粗暴,有代碼為證:

>>> int(3.6)
3
>>> int(3.4)
3

另外,int()還可以把字符串按照指定的進位轉換為整數,如果不指定進位的話默認按十進位為準,除非第一個參數字符串隱含了進位並且指定第二個參數為0,例如:

>>> int('3333')
3333
>>> int('3333', 0)
3333
>>> int('0o333', 0)
219

>>> int('0x3333', 0)
13107

那麼int()函數的第二個參數除了0還有啥?讓Python內置函數help()來告訴我們(學Python必備技能,節選):

>>> help(int)
Help on class int in module builtins:

class int(object)
 |  int(x=0) -> integer
 |  int(x, base=10) -> integer
 | 
 |  Convert a number or string to an integer, or return 0 if no arguments
 |  are given.  If x is a number, return x.__int__().  For floating point
 |  numbers, this truncates towards zero.
 | 
 |  If x is not a number or if base is given, then x must be a string,
 |  bytes, or bytearray instance representing an integer literal in the
 |  given base.  The literal can be preceded by '+' or '-' and be surrounded
 |  by whitespace.  The base defaults to 10.  Valid bases are 0 and 2-36.
 |  Base 0 means to interpret the base from the string as an integer literal.

也就是說,int()函數的第二個參數可以是0或者2-36之間的數字(如果第一個參數字符串隱含了進位的話,要統一起來),例如:

>>> int('1111', 2)
15
>>> int('1111', 3)
40
>>> int('1111', 8)
585
>>> int('1111', 27)
20440

這樣的東西有啥用呢?讓我們來講一個故事:阿凡提與國王比賽下棋,國王說要是自己輸了的話阿凡提想要什麼他都可以拿得出來。阿凡提說那就要點米吧,棋盤一共64個小格子,在第一個格子裡放1粒米,第二個格子裡放2粒米,第三個格子裡放4粒米,第四個格子裡放8粒米,以此類推,後面每個格子裡的米都是前一個格子裡的2倍,一直把64個格子都放滿。需要多少粒米呢?當然,這個問題用列表推導式或者生成器表達式很容易計算。但是,用int()函數計算或許是最快的。

>>> int('1'*64, 2)
18446744073709551615

順便說句題外話,這到底需要多少米呢?把「粒」換算成「噸」或者「億噸」,你會嗎?

相關閱讀

1900頁Python系列PPT分享六:面向對象程序設計(86頁)

1900頁Python系列PPT分享五:函數設計與應用(134頁)

1900頁Python系列PPT分享四:字符串與正則表達式(109頁)

1900頁Python系列PPT分享三:選擇與循環結構語法及案例(96頁)

1900頁Python系列PPT分享二:Python序列(列表、元組、字典、集合)(154頁)

1900頁Python系列PPT分享一:基礎知識(106頁)

學習Python的利器:內置函數dir()和help()

詳解Python序列解包

詳解Python列表推導式

Python泛型函數與單分發器

Python中的偏函數和函數柯裡化

Python列表與數字的四則運算

詳解Python切片技術

詳解Python中的淺複製與深複製

Python運算符含義匯總

Python內置函數使用說明

Python模擬決賽現場最終得分計算過程

Python使用模塊中對象的幾種方法

Python計算信息熵

Python中定義只能實例化一個對象的類

Python從序列中選擇k個不重複元素

時間都去哪兒了之Python程序測試與優化

Python函數嵌套定義的洪荒之力

Python內置函數eval()用法及其安全問題

Python自定義類支持with關鍵字

Python裡的++和--不是運算符

Python代碼優化之in關鍵字

Python提取任意長度整數的每位數字

Python常用運算符含義與用法演示

Python序列循環移位的3種方法

Python版24點遊戲

Python版本的報數遊戲

回調函數原理與Python實現

Python標準庫shutil中rmtree()使用回調函數

封裝Python列表實現多下標訪問

Python列印指定日期日曆

Python_今天是今年第幾天

使用Python列表實現向量運算

董付國老師6本Python系列教材被北大、復旦等近百所高校選作教材

全國計算機等級考試二級Python考試大綱預測和分析

大家都在學Python,你和別人的差距在哪?

大學生們顫抖吧,中學生已經開始學Python了!

祝所有程式設計師1024節日快樂

學會提問,你就成功了一大半!

盤點那些讓人上火的提問方式(論如何讓交流更高效)

喜大普奔

1、繼《Python程序設計基礎》、《Python程序設計(第2版)》、《Python可以這樣學》、《Python程序設計開發寶典》之後,董付國老師新作《中學生可以這樣學Python》已於2017年10月正式出版,已在各大書城全面上架。大學生們顫抖吧,中學生已經開始學Python了!

2、董付國老師6本Python系列圖書閱讀指南

3、董老師免費視頻地址: http://pan.baidu.com/s/1c14WYn2 密碼: 9xwr

---近期Python培訓班安排-

1、2017年12月21日-25日 (21日報到,報名已結束)  廈 門:Python編程及應用--數據分析與科學計算可視化培訓班

2、2018年1月12日至14日(11日報到) 合肥:全國Python科研應用專題實操培訓班

3、2018年1月19日---1月21日(18日報到) 煙臺:2018年全國中高等院校教師 「Python編程及應用」培訓班通知

4、2018年1月28日—2月2日(28日全天報到)  廈門:「Python編程及大數據應用」課程教師(廈門)寒假研修班

相關焦點

  • python的內置函數:int()轉換成整型
    前言在Java中有強制類型轉換,我們可以利用Integer.parseInt()將一個對象轉換成int類型。在python中是利用內置函數int()來將一個對象轉換成整型。python的內置函數int的使用1.內置函數int()語法classint(x,base=10),其中x為一個字符串或數字,base來表示x是以什麼進位的數據來表示的。
  • python中int函數的其他用法
    泰山版初中信息技術第1冊python編程中出現了int函數,教材中int函數的作用是把輸入的字符型數字轉變成整數,其實int函數還有其他的用法
  • Python內置函數一覽表
    Python 標準庫非常龐大,包含了很多模塊,要想使用某個函數,必須提前導入對應的模塊,否則函數是無效的。內置函數是解釋器的一部分,它隨著解釋器的啟動而生效;標準庫函數是解釋器的外部擴展,導入模塊以後才能生效。一般來說,內置函數的執行效率要高於標準庫函數。
  • 柳小白Python學習筆記 8 函數(function)之內置函數
    函數是組織好的,可重複使用的,用來實現單一或相關聯功能的代碼段。python提供了很多內置函數,當然我們也可以自定義函數。今天主要學習一些內置函數的用法。python裡內置了很多函數,這些函數可以直接調用。
  • python中str內置函數用法總結
    大家在使用python的過程中,應該在敲代碼的時候經常遇到str內置函數,為了防止大家搞混,本文整理歸納了str內置函數。
  • python eval()內置函數
    python有一個內置函數eval(),可以將字符串進行運行。
  • python 內置函數
    列舉部分python內置函數描述abs() 函數返回數字的絕對值
  • 為什麼說python內置函數並不是萬能的?
    作者:豌豆花下貓來源:Python貓之前我們對比了兩種創建列表的方法,即字面量用法 [] 與內置類型用法 list(),進而分析出它們在運行速度上的差異。對於新手來說,這有一定的可能會發生意想不到的情況(內置函數有 69 個,要全記住是有難度的)。那麼,為什麼python 不把所有內置函數的名稱都設為不可複寫的關鍵字呢?一方面原因是它想控制關鍵字的數量,另一方面可能是想留給用戶更多的自由。內置函數只是解釋器的推薦實現而已,開發者可以根據需要,實現出與內置函數同名的函數。
  • Python中有哪些內置函數呢?以及內置函數實例
    >Python中有哪些內置函數呢?高級內置函數enumerate 返回一個可以枚舉的對象eval 取出 字符串中的內容,將字符串str當成有效的表達式來求指並返回計算結果exec 執行字符串或complie方法編譯過的字符串
  • 類型內置函數-type() isinstance()
    Python中的類型內置函數那麼,我們如何判斷對象的數據類型呢?在Python中,有三個獲取數據類型的內置函數,分別是type()函數、 isinstance()函數、 issubclass()函數。今天我們介紹前兩種函數。
  • python 內置函數詳解(一)
    該函數是 ord() 的逆函數。如果第一個形參是字符串,則它被解釋為一個複數,並且函數調用時必須沒有第二個形參。如果省略了 imag,則默認值為零,構造函數會像 int 和 float 一樣進行數值轉換。當從字符串轉換時,字符串在 + 或 - 的周圍必須不能有空格。
  • Python 函數合集:足足 68 個內置函數請收好
    (給Python開發者加星標,提升Python技能)來源:pypypypy www.cnblogs.com/pypypy/p/12011506.html內置函數就是
  • python(內置函數, 模塊)打補丁, 兼容py2、3
    py2官方已不在維護, 所以將項目升級到py3, 但是項目也不是一行兩行的事, 並且項目還在使用, 所以必須要兼容py2, 升級到py3  所以就有了以下常見問題, 比如, py2的內置函數py3已不使用, py2的內置模塊py3已經改名....
  • python教程:3個非常有用的內置函數
    這三個內置函數還是非常有用的,在工作中用的還不少,順手,下面一一進行介紹另外在python2.*版本中是直接返回list的,但在python3.
  • python學習與PHP對比總結(二)之函數
    python的內置函數python提供了一些內置函數,可以直接調用即可,這些內置函數的用法和PHP的類似,直接調用傳入參數即可,舉幾個例子:abs取絕對值的函數:>>> abs(10)
  • Python sorted函數及用法
    sorted() 作為 Python 內置函數之一,其功能是對序列(列表、元組、字典、集合、還包括字符串)進行排序。
  • Python 69個內置函數分8類總結,這樣記更方便!
    >內置函數Python3解釋器中內置了69個常用函數,屬於底層的函數,它們到處可用。1 類型相關69個內置函數中,與類型相關的指,把入參包裝為某種類型,這樣的內置函數包括:bool()  #d布爾型int()  #d整形str()  #d字符型tuple() #d元包型dict() #d字典型list() #d列表型
  • Python內置函數sorted()高級排序用法
    可以結合Python內置函數sorted()從入門到精通來看一些稍微基礎的排序用法。
  • Python 函數合集:足足 68 個內置函數,請收好
    python給你提供的, 拿來直接用的函數,比如print.截止到python版本3.6.2 python一共提供了68個內置函數。#68個內置函數# abs()   dict()   help()   min()   setattr()# all()   dir()   hex()   next()   slice() # any()   divmod
  • Python中10個常用的內置函數
    大家好,我是小張在 3.8 版本中,Python 解釋器有近 69 個內置函數可供使用,有了它們能極大地提高編碼效率,數量雖然不少,但在日常搬磚中只用到其中一部分,根據使用頻率和用法,這裡列出來幾個本人認為不錯的內置函數,結合一些例子介紹給大家