我知道之前已經問過類似的問題并得到了回答,例如:How do I check if a string is a number (float or Int) in Python?
但是,它沒有提供我正在尋找的答案。我想要做的是:
def is_int_or_float(s):
try:
a = float(s)
return 1 if s.count('.')==0 else 2
except ValueError:
return -1
val = input("Enter your value: ")
data = is_int_or_float(val)
print(data)
如果用戶輸入 => "22" # 那么上面的代碼將給出-1。請幫助我通過例外處理解決這個問題(用戶訊息)
uj5u.com熱心網友回復:
嘗試這個:
def is_int_or_float(value):
try:
tmp = float(value)
return 1 if tmp.is_integer() else 2
except ValueError:
return -1
和測驗:
>>> is_int_or_float("a")
-1
>>> is_int_or_float("22")
1
>>> is_int_or_float("22.646")
2
>>> is_int_or_float("22.64.6")
-1
>>> is_int_or_float("22.000")
1
>>> is_int_or_float("1e-4")
2
uj5u.com熱心網友回復:
您可以為此創建一個簡單的句柄。
檢查代碼。您需要實作例外處理邏輯。
class AbstractHandler:
def is_float(self):
raise NotImplementedError
def is_int(self):
raise NotImplementedError
def verify(self):
raise NotImplementedError
class Handler(AbstractHandler):
def is_float(self, number):
try:
float(number)
return True
except ValueError:
# Your exception handler here
return False
def is_int(self, number):
try:
int(number)
return True
except ValueError:
# Your exception handler here
return False
def verify(self, var):
if self.is_float(var) or self.is_int(var):
return True
else:
return False
def is_number(var):
"""
Verify if input is a instance of int or float
Args:
var (str): input to be verified
"""
handler = Handler()
return handler.verify(var)
一些測驗:
1 is True
1.1 is True
1.1.1 is False
uj5u.com熱心網友回復:
一種檢查方法,例如整數,使用isinstance:
x = 1
if isinstance(x, int):
# Do something
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/451150.html
標籤:Python python-3.x django 烧瓶
