Python技巧:用isnumeric等代替數值異常處理
實現Python程式碼,輸入數字,然後輸出這個數字的三倍。
>>> n = input("Enter a number: ")
Enter a number: 6
>>> print(f"{n} * 3 = {n*3}")
6 * 3 = 666
input函式總是返回字串。可以通過int轉換字串為整數:
>>> n = int(n)
>>> print(f"{n} * 3 = {n*3}")
6 * 3 = 18
但是,如果輸入不是數值,則會報錯:
Enter a number: abcd
ValueError: invalid literal for int() with base 10: `abcd`
比較常用的方法是在“try”塊中執行轉換,並捕獲我們可能獲得的任何異常。但字串的isdigit方法可以更優雅地解決這個問題。
>>> `1234`.isdigit()
True
>>> `1234 `.isdigit() # space at the end
False
>>> `1234a`.isdigit() # letter at the end
False
>>> `a1234`.isdigit() # letter at the start
False
>>> `12.34`.isdigit() # decimal point
False
>>> ``.isdigit() # empty string
False
str.isdigit對正規表示式`^ d + $`返回True。
>>> n = input("Enter a number: ")
>>> if n.isdigit():
n = int(n)
print(f"{n} * 3 = {n*3}")
- 參考資料
- 原文:https://www.jianshu.com/p/ba90e1f58f51
- 釘釘支援群: 21745728
- 本文涉及的python測試開發庫 謝謝點贊!
- 本文相關海量書籍下載
- 2018最佳人工智慧機器學習工具書及下載(持續更新)
Python還包括另一方法str.isnumeric,他們有什麼區別?
>>> n = input("Enter a number: ")
>>> if n.numeric():
n = int(n)
print(f"{n} * 3 = {n*3}")
字串只包含數字0-9時str.isdigit返回True。str.isnumeric則還能識別英語意外語言的數值。
>>> `一二三四五`.isdigit()
False
>>> `一二三四五`.isnumeric()
True
>>> int(`二`)
ValueError: invalid literal for int() with base 10: `二`
str.isdecimal
>>> s = `2²` # or if you prefer, s = `2` + `u00B2`
>>> s.isdigit()
True
>>> s.isnumeric()
True
>>> s.isdecimal()
False
相關文章
- python應用:異常處理Python
- Python異常處理Python
- Python——異常處理Python
- C++ 異常處理機制詳解:輕鬆掌握異常處理技巧C++
- python try異常處理Python
- python異常捕捉處理Python
- Flask開發技巧之異常處理Flask
- Linux 下 C++ 異常處理技巧LinuxC++
- 異常篇——異常處理
- Python Selenium異常處理Python
- python異常處理之returnPython
- Python 中的異常處理Python
- Python異常處理機制Python
- python異常處理詳解Python
- Python基礎 -- 異常處理Python
- Python錯誤處理和異常處理(二)Python
- 異常處理
- Python進階08 異常處理Python
- python 基礎之異常處理Python
- python URLError,HTTPError 的異常處理PythonErrorHTTP
- 異常-throws的方式處理異常
- 異常處理與異常函式函式
- JavaScript 異常處理JavaScript
- ThinkPHP 異常處理PHP
- React 異常處理React
- 08、異常處理
- JAVA 異常處理Java
- JAVA異常處理Java
- Abp 異常處理
- oracle異常處理Oracle
- PowerShell 異常處理
- plsql異常處理SQL
- Swift 異常處理Swift
- JS異常處理JS
- app異常處理APP
- Oracle 處理異常Oracle
- MySQL異常處理MySql
- 異常處理 (轉)