【问题标题】:Multiple If statements - not returning the correct value多个 If 语句 - 未返回正确的值
【发布时间】:2017-09-13 06:03:02
【问题描述】:

我正在使用 tkinter 设计一个 GUI,用户将在其中输入特定信息,单击“创建”按钮后,该信息将按特定顺序排列,输出将以文本形式显示给用户盒子。我遇到的问题是“创建”功能的设计。我相信我必须使用多个 If 语句才能完成此操作,但我在文本框中得到的输出是“tcpdump -i eth1 None host 9.9.9.9NoneNone”。显然,我不希望包含“无”,我该如何纠正这个?下面是我的“创建”函数。

谢谢,

    def create(self):
        data = "tcpdump "
        data += "-i " + self.int_entry.get() + " "


        if self.anyInt.get():
            data += "any "
        if self.src_entry.get() and not self.srcIP.get():
            data += "host " + self.src_entry.get() + " "
        elif self.src_entry.get() and self.srcIP.get():
            data += "src " + self.src_entry.get()
        data += self.AndOr.get() + " "
        if self.notDst.get():
            data += "not "
        if self.dst_entry.get() and not self.dstIP.get():
            data += "host " + self.dst_entry.get()
        elif self.dst_entry.get() and self.dstIP.get():
            data += "dst" + " " + self.dst_entry.get()
        data += self.AndOrport.get()
        if self.notSrcPort.get():
            data += "not "
        if self.srcport_entry.get():
            data += "src port " + self.srcport_entry.get() + " "
        data += self.SrcDstport.get()
        if self.notDstPort.get():
            data += "not "
        if self.dstport_entry.get():
            data += "dst port " + self.dstport_entry.get()


        self.filterData.delete(0.0, END)
        self.filterData.insert(0.0, data)

def main():
    root = Tk()
    app = Example(root)
    root.mainloop()

if __name__ == '__main__':
    main()

【问题讨论】:

  • 您确实需要限制您发布的代码量。这是太多的代码,无法期望我们去挖掘。您需要进行调试以缩小代码范围,并发布一个重现问题的较小示例。
  • 明白,谢谢。
  • 我认为您错过了@Carcigenicate 评论中的“发布一个重现问题的较小示例”部分,您只裁剪了您的代码,但它不再可重现
  • 我只能看到一个函数下有许多if 语句。我认为你不能说if if elif if if elif if if。请使用正确的缩进。
  • 你不断得到你的None,因为像data += self.AndOrport.get()data += self.SrcDstport.get()这样的行超出了你的if逻辑。所以也将逻辑附加到它们,或者从最终结果中删除None

标签: python if-statement tkinter


【解决方案1】:

你必须使用一次 if,然后 else if。 您也可以处理案例。认识图书馆并拿一本关于 C++ 和 C 开发的好书。或在线教程。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-21
    • 1970-01-01
    • 2021-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-16
    • 1970-01-01
    相关资源
    最近更新 更多