0

我是一个相当新的 Python 程序员(3 天前开始)。我是一名土木工程师的学徒,他让我为他的程序做一些更简单的任务,因为我应该使用的目标是不允许在某些空地对象中输入数字。

我一直在努力创建的代码是这样的:

    def testOmHeltal (self, number1):
        textviewResultat = self.builder.get_object("textviewResultat")
        text = gtk.TextBuffer()
        try:
            #print number1.get_text()
            #temp = number1.get_text() + number1.get_text()
            temp = float(number1.get_text())

        except ValueError:
            text.set_text("ERROR: Endast Nummer")
            self.builder.get_object("hboxWarning").show()
            self.builder.get_object("image12").show()
            self.builder.get_object("textviewResultat").set_buffer(text)
            return 0
        self.builder.get_object("hboxWarning").hide()
        self.builder.get_object("image12").hide()


    def quit(self, widget):
        sys.exit(0)

这段代码在 glade 对象的位置被调用,这行代码:

self.testOmHeltal(entryGladeObject)

现在到手头的问题,我总是收到这样的浮动错误:

文件“bvf.py”,第 393 行,在 utfora

+float(entryTjockleksskyddslager.get_text<>>>>

ValueError:float<> 的无效文字:0.04e

0.04e 是无效输入,第 393 行是我的 Chiefs 代码的一部分,因为他一直在使用浮点数,我不应该过多干预它,我有点恐慌......

我知道 float 只能以数字开头和结尾而不给出错误,但由于我的“代码”位想要一个错误(或者更确切地说,一个异常)来启动使用字母的人的“hboxWarning”和“image12”而不是假设的数字,我不知道该怎么做><

而不是用 hboxWarning 和 image12 显示我的错误,什么都没有发生......

任何提示或建议都会有很大帮助。

4

1 回答 1

0

我不知道我是否理解正确,但错误不在您的代码上,对吧?

我只能假设有一段代码试图在验证之前将值转换为浮点数。如果是这种情况,您应该在对其进行任何处理之前验证该值,或者在错误代码周围移动 try-except 代码,具体取决于处理本身(例如,如果处理意味着数据库操作,它会更安全之前进行所有验证)。

如果错误发生在您运行的行之前self.testOmHeltal(entryGladeObject),则信号/方法的执行会立即停止,并且您的代码永远不会被执行;这就是为什么没有显示警告的原因。

于 2013-01-06T19:40:09.193 回答