在 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'>
相關用法
- Python string轉integer用法及代碼示例
- Python integer轉string用法及代碼示例
- Python Integer Matrix轉String Matrix用法及代碼示例
- Pandas DataFrame String轉Integer用法及代碼示例
- Python Tuple轉integer用法及代碼示例
- Python DateTime轉integer用法及代碼示例
- Python integer轉roman用法及代碼示例
- Pandas DataFrame Integer轉Datetime用法及代碼示例
注:本文由純淨天空篩選整理自ankthon大神的英文原創作品 How to convert string to integer in Python?。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。