多个If语句 - 未返回正确的值

时间:2017-04-17 15:34:16

标签: python if-statement tkinter

我正在使用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()

1 个答案:

答案 0 :(得分:1)

如果是,则必须使用一次,否则使用。 您也可以处理案例。与图书馆见面并阅读一本关于C ++和C开发的好书。或在线教程。