【问题标题】:What is a reliable isnumeric() function for python 3?python 3 的可靠 isnumeric() 函数是什么?
【发布时间】:2015-08-31 13:08:29
【问题描述】:

我正在尝试做应该非常简单的事情,并检查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() 方法的可能性,但我找不到可靠的正则表达式来处理它。

这是一件非常正常的事情,需要做。有什么想法吗?

【问题讨论】:

标签: python regex validation python-3.x isnumeric


【解决方案1】:
try:
    float(w.get())
except ValueError:
    # wasn't numeric

【讨论】:

  • 如果我有大脑我会想到的。没有理由不能将其包装在 IsNumeric 函数中。 :)
【解决方案2】:

听起来您可能只需要知道将某个字符串传递给float 是否会给出结果(即它是一个很好的数值)或错误(即字符串不代表数字)。试试这个:

def isnum(s):
    try:
        float(s)
    except:
        return(False)
    else:
        return(True)

【讨论】:

  • except 捕获所有内容是个坏主意。 FalseTrue 也不需要括号。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-14
  • 1970-01-01
  • 2011-02-24
相关资源
最近更新 更多