Python中如何將字串變成數字?

老男孩IT教育機構發表於2023-10-19

  字串和數字是Python中常見的資料型別,而且在撰寫Python程式的時候,也經常會遇到需要將字串轉換為數字的情況,那麼Python中如何將字串變成數字?有多種方法可以使用,接下來一起來看看具體內容介紹。

  1、使用int()函式

  int()函式可以將字串轉換為整數型別。例如,將字串"123"轉換為整數型別的程式碼如下:

  ```

  str_num = "123"

  num = int(str_num)

  print(num)

  ```

  執行結果為:

  ```

  123

  ```

  需要注意的是,如果字串中包含非數字字元,則會丟擲ValueError異常。例如,將字串"123abc"轉換為整數型別的程式碼如下:

  ```

  str_num = "123abc"

  num = int(str_num)

  print(num)

  ```

  執行結果為:

  ```

  ValueError: invalid literal for int() with base 10: '123abc'

  ```

  2、使用float()函式

  float()函式可以將字串轉換為浮點數型別。例如,將字串"3.14"轉換為浮點數型別的程式碼如下:

  ```

  str_num = "3.14"

  num = float(str_num)

  print(num)

  ```

  執行結果為:

  ```

  3.14

  ```

  需要注意的是,如果字串中包含非數字字元,則會丟擲ValueError異常。例如,將字串"3.14abc"轉換為浮點數型別的程式碼如下:

  ```

  str_num = "3.14abc"

  num = float(str_num)

  print(num)

  ```

  執行結果為:

  ```

  ValueError: could not convert string to float: '3.14abc'

  ```

  3、使用eval()函式

  eval()函式可以將字串轉換為Python表示式並求值。如果字串表示一個數字,eval()函式會將其轉換為數字型別。例如,字串"123"轉換為數字型別的程式碼如下:

  ```

  str_num = "123"

  num = eval(str_num)

  print(num)

  ```

  執行結果為:

  ```

  123

  ```

  需要注意的是,如果字串中包含非數字字元,則會丟擲SyntaxError異常。例如,將字串"123abc"轉換為數字型別的程式碼如下:

  ```

  str_num = "123abc"

  num = eval(str_num)

  print(num)

  ```

  執行結果為:

  ```

  SyntaxError: invalid syntax

  ```

  4、使用isdigit()函式

  isdigit()函式可以檢查字串中是否只包含數字字元。如果是,返回True;否則返回False。例如,判斷字串"123"是否是數字的程式碼如下:

  ```

  str_num = "123"

  if str_num.isdigit():

  print("是數字")

  else:

  print("不是數字")

  ```

  執行結果為:

  ```

  是數字

  ```

  需要注意的是,如果字串中包含非數字字元,則返回False。例如,判斷字串"123abc"是否是數字的程式碼如下:

  ```

  str_num = "123abc"

  if str_num.isdigit():

  print("是數字")

  else:

  print("不是數字")

  ```

  執行結果為:

  ```

  不是數字

  ```

  5、使用正規表示式提取字串中的數字

  正規表示式可以用來匹配特定的字串格式。可以使用正規表示式提取字串中的數字。例如,從字串"abc123def456"中提取數字的程式碼如下:

  ```

  import re

  str_num = "abc123def456"

  pattern = re.compile(r'\d+')

  nums = pattern.findall(str_num)

  print(nums)

  ```

  執行結果為:

  ```

  ['123', '456']

  ```

  需要注意的是,正規表示式中的"\d"表示數字字元,而"+"表示匹配至少一個數字字元。如果要匹配浮點數,則可以使用"\d+\.\d+"作為正規表示式。


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

相關文章