python函式每日一講 - int()函式

wh7577發表於2021-09-09

int(x, [base])

功能:

函式的作用是將一個數字或base型別的字串轉換成整數。


函式原型:

int(x=0)

int(x, base=10),base預設值為10,也就是說不指定base的值時,函式將x按十進位制處理。


適用Python版本: 

Python2.x

Python3.x


注意:

1. x 可以是數字或字串,但是base被賦值後 x 只能是字串

2. x 作為字串時必須是 base 型別,也就是說 x 變成數字時必須能用 base 進製表示


Python英文文件解釋:

class int(x=0)

class int(x, base=10)

Return an integer object constructed from a number or string x, 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 radix base. Optionally, the literal can be preceded by + or - (with no space in between) and surrounded by whitespace. A base-n literal consists of the digits 0 to n-1, with a to z (or A to Z) having values 10 to 35. The default base is 10. The allowed values are 0 and 2–36. Base-2, -8, and -16 literals can be optionally prefixed with 0b/0B, 0o/0O, or 0x/0X, as with integer literals in code. Base 0 means to interpret exactly as a code literal, so that the actual base is 2, 8, 10, or 16, and so that int('010', 0) is not legal, while int('010') is, as well as int('010', 8).


The integer type is described in Numeric Types — int, float, complex.


Changed in version 3.4: If base is not an instance of int and the base object has a base.__index__ method, that method is called to obtain an integer for the base. Previous versions used base.__int__ instead of base.__index__.


Changed in version 3.6: Grouping digits with underscores as in code literals is allowed.


程式碼例項:


1. x 是數字的情況:

  int(3.14)            # 3
  int(2e2)             # 200
  int(100, 2)          # 出錯,base 被賦值後函式只接收字串


2. x 是字串的情況:

  int('23', 16)      # 35
  int('Pythontab', 8)      # 出錯,Pythontab不是個8進位制數


3. base 可取值範圍是 2~36,囊括了所有的英文字母(不區分大小寫),十六進位制中F表示15,那麼G將在二十進位制中表示16,依此類推....Z在三十六進位制中表示35

  int('FZ', 16)      # 出錯,FZ不能用十六進位制表示
  int('FZ', 36)      # 575


4. 字串 0x 可以出現在十六進位制中,視作十六進位制的符號,同理 0b 可以出現在二進位制中,除此之外視作數字 0 和字母 x

  int('0x10', 16)  # 16,0x是十六進位制的符號
  int('0x10', 17)  # 出錯,'0x10'中的 x 被視作英文字母 x
  int('0x10', 36)  # 42804,36進位制包含字母 x

原文來源:


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

相關文章