python 3 的可靠 isnumeric() 函数是什么?
What is a reliable isnumeric() function for python 3?
我正在尝试做一些应该非常简单的事情,并检查 Entry
字段中的值是否是有效的实数。 str.isnumeric()
方法不考虑“-”负数或“.”。十进制数。
我试着为此写了一个函数:
def IsNumeric(self, event):
w = event.widget
if (not w.get().isnumeric()):
if ("-" not in w.get()):
if ("." not in w.get()):
w.delete(0, END)
w.insert(0, '')
在您返回并在其中键入字母之前,这一切正常。然后就失败了。
我研究了使用 .split()
方法的可能性,但我找不到可靠的正则表达式来处理它。
这是一件非常正常的事情,需要完成。有什么想法吗?
try:
float(w.get())
except ValueError:
# wasn't numeric
听起来您可能只需要知道将某个字符串传递给 float
会给出结果(即它是一个不错的数值)还是错误(即该字符串不代表数字)。试试这个:
def isnum(s):
try:
float(s)
except:
return(False)
else:
return(True)
我意识到这是一个老问题,但我刚刚遇到了这个问题。
你可以这样做:
if re.sub("[^0-9\-\.]", "", "-0.18"):
我正在尝试做一些应该非常简单的事情,并检查 Entry
字段中的值是否是有效的实数。 str.isnumeric()
方法不考虑“-”负数或“.”。十进制数。
我试着为此写了一个函数:
def IsNumeric(self, event):
w = event.widget
if (not w.get().isnumeric()):
if ("-" not in w.get()):
if ("." not in w.get()):
w.delete(0, END)
w.insert(0, '')
在您返回并在其中键入字母之前,这一切正常。然后就失败了。
我研究了使用 .split()
方法的可能性,但我找不到可靠的正则表达式来处理它。
这是一件非常正常的事情,需要完成。有什么想法吗?
try:
float(w.get())
except ValueError:
# wasn't numeric
听起来您可能只需要知道将某个字符串传递给 float
会给出结果(即它是一个不错的数值)还是错误(即该字符串不代表数字)。试试这个:
def isnum(s):
try:
float(s)
except:
return(False)
else:
return(True)
我意识到这是一个老问题,但我刚刚遇到了这个问题。 你可以这样做:
if re.sub("[^0-9\-\.]", "", "-0.18"):