當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python string轉integer用法及代碼示例


在 Python 中,可以使用以下方法將字符串轉換為整數:

方法一: 使用 內置 int() 函數:

如果您的字符串包含十進製整數並且您希望將其轉換為 int,在這種情況下,請將您的字符串傳遞給 int() 函數,它會將您的字符串轉換為等效的十進製整數。

用法:int(string, base)

參數:該函數采用以下參數:



  • string:由 1、0 或十六進製、八進製數字等組成。
  • base:(整數值)數字的基數。

返回值:返回一個整數值,它是等價的
給定基數中的字符串。

碼:

Python3


# Initialising a string 
# with decimal value
string = "100"
  
# Show the Data type
print(type(string))
  
# Converting string into int
string_to_int = int(string)
  
# Show the Data type
print(type(string_to_int))

輸出:

<class 'str'>
<class 'int'>

默認情況下,int() 期望字符串參數表示十進製整數。假設在任何情況下,您將一個十六進製字符串傳遞給 int(),那麽它將顯示 ValueError。在這種情況下,您可以指定字符串中數字的基數。

碼:

Python3


# Initialising a string
# with hexadecimal value
string = "0x12F"
  
# Show the Data type
print(type(string))
  
# Converting hexadecimal 
# string into int
string_to_int = int(string, 
                    base=16)
# Show the Data type
print(type(string_to_int))

輸出:

<class 'str'>
<class 'int'>

方法二:使用自定義函數:

我們還可以通過創建自己的用戶定義函數將字符串轉換為 int。

方法:

  • 我們將檢查該數字是否有任何 “-” 符號,因為如果它是負數,它將包含 “-” 符號。如果它包含 “-” 符號,那麽我們將從包含數字的第二個位置開始轉換。
  • 任意數,假設321,可以寫成結構:10**2 * 3 + 10**1*2 + 10**0*1
  • 同樣,我們使用 ord(argument) 拆分每個輸入數字,ord(‘0’) 將返回 48,ord(‘1’) 返回 49,依此類推。
  • 這裏的邏輯是 ord(‘1’) - ord(‘0) = 1, ord(‘2’) - ord(‘0’) = 2 等等,這為我們提供了從給定輸入數字中獲取的有效數字。
  • 最後,我們從函數中得到的結果是一個整數,我們從給定的字符串轉換過來。

碼:

Python3


# User-defined function to 
# convert a string into integer
def string_to_int(input_string):
    
  output_int = 0
    
  # Check if the number contains
  # any minus sign or not, 
  # i.e. is it a negative number or not. 
  # If it contains in the first
  # position in a minus sign,
  # we start our conversion 
  # from the second position which
  # contains numbers.
  if input_string[0] == '-' :
    starting_idx = 1
    check_negative = True
      
  else:
    starting_idx = 0
    check_negative = False
      
  for i in range(starting_idx, len(input_string)):
      
    # calculate the place value for 
    # the respective digit
    place_value = 10**(len(input_string) - (i+1))
      
    # calculate digit value
    # ord() function gives Ascii value
    digit_value = ord(input_string[i]) - ord('0')
      
    # calculating the final integer value
    output_int += place_value * digit_value
      
  # if check_negative is true 
  # then final integer value 
  # is multiplied by -1
  if check_negative:
    return -1 * output_int
  else:
    return output_int
  
# Driver code
if __name__ == "__main__" : 
    
  string = "554"
  
  # function call
  x = string_to_int(string)
  
  # Show the Data type
  print(type(x))
  
  string = "123"
  
  # Show the Data type
  print(type(string_to_int(string))) 
  
  string = "-123"
  
  # Show the Data type
  print(type(string_to_int(string)))

輸出:

<class 'int'>
<class 'int'>
<class 'int'>




相關用法


注:本文由純淨天空篩選整理自ankthon大神的英文原創作品 How to convert string to integer in Python?。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。