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)

このコードは、次の行で空き地オブジェクトの場所で呼び出されます。

self.testOmHeltal(entryGladeObject)

今目の前の問題に、私はいつもそのような Float エラーを受け取ります:

utfora のファイル「bvf.py」、393 行目

+float(entryTjockleksskyddslager.get_text<>>>>

ValueError: float<> の無効なリテラル: 0.04e

0.04e は無効な入力で、393 行目は私のチーフス コードの一部です。

float はエラーを発生させないように数字でのみ開始および終了できることを理解していますが、私の「コード」ビットはエラー (または例外) を開始して、文字を使用している人の 'hboxWarning' と 'image12' を開始する必要があるためです。想定の数どころか、どうしようか迷ってます ><

hboxWarning と image12 でエラーを表示する代わりに、何も起こりません...

ヒントやアドバイスは大いに役立ちます。

4

1 に答える 1

0

正しく理解したかどうかはわかりませんが、エラーはコードにありませんよね?

私が推測できるのは、検証の前に値をfloatに変換しようとしているコードがあるということだけです。その場合は、処理を行う前に値を確認するか、処理自体に応じて、try-exceptコードを障害のあるコードの周りに移動する必要があります(たとえば、処理がデータベース操作を意味する場合は、より安全です)。以前にすべての検証を行うため)。

実行する行のでエラーが発生している場合self.testOmHeltal(entryGladeObject)、シグナル/メソッドの実行はすぐに停止し、コードが実行されることはありません。そのため、警告は表示されません。

于 2013-01-06T19:40:09.193 に答える