IF语句Python的问题

时间:2017-04-29 09:12:29

标签: python-3.x

我遇到单击按钮时产生的IF语句有问题。 我到目前为止的代码如下所示,基本上我需要的是按下按钮后它会询问“你确定要更新吗?”的问题。这很好用。然后用户单击是或否。否关闭弹出框(正常工作),如果用户单击是,则检查该条目是否为空。如果是保留原始变量(工作正常),它还会检查条目是否为浮点数,如果不是则返回错误消息,即使它是浮点数,也会返回错误消息,我希望它做的是,如果它是一个浮点数然后使用else语句应该做的输入值。但它不断带回消息框错误。

The only supported ciphers are AES-128-CBC and AES-256-CBC with the correct key lengths

也许Psuedocode可能有所帮助:

按钮点击:

问题 没有关闭窗口 是=如果进入是空白,则使用旧变量 或ENTRY = FLOAT然后使用新的变量 如果它是任何其他类型,那么显示错误消息框,'错误的类型'

如果这是问题,我将条目设置为StringVar()。

由于

1 个答案:

答案 0 :(得分:2)

在他们的评论中,hiro protagonist建议a可能永远是str。我同意这可能是这种情况(虽然我不确定)。这是构建代码以使用float()解析a之外的值的一种方法:

def updatetimings():
    ask = messagebox.askquestion('Validation','Are you sure you want to update timings?')
    if ask == 'yes':
        a = newv5c.get()
        if a == '':
            e1 = v5c_timing
        else:
            try:
                # Try parsing a as a float. If it works, store the result in e1.
                e1 = float(a)
            except ValueError:
                # If we're not able to parse a as a float, then show an error message.
                messagebox.showinfo('Error','Please enter decimal numbers only')

我希望这有帮助!