2015-09-25 22 views
-7

我有一个代码,在那个代码中,我要求输入IP地址(它可以是随机的任何东西,因为代码仅用于显示,换句话说,doesn我什么都不做),我用“”分割它。“作为分隔符,我想检查它是否有四个分段,就像IP一样。我不想检查段的内容,我只想检查一下,如果它可以是一个真正的IP(我知道有多个IP的有效性条件,但让我们保持简单)。Python 2.7中的列表(与3.x兼容)

如何检查列表是否有四个“元素”,而不会触发任何python错误。如果需要,我可以提供有问题的代码部分。

编辑1: 谢谢你们那个快速的回答。这里是你要的,微微一变,不工作(之前的版本没有任何)的代码(我进口的fnmatch从的fnmatch和已经定义的函数):

if fnmatch(list.split("."), "[*,*,*,*]"): 
    success() 
else: 
    fail() 

我想要得到的东西,当列表有四个项目时将调用success(),如果不是,则调用fail()。

+4

看起来您希望我们为您编写一些代码。尽管许多用户愿意为遇险的编码人员编写代码,但他们通常只在海报已尝试自行解决问题时才提供帮助。证明这一努力的一个好方法是包含迄今为止编写的代码,示例输入(如果有的话),期望的输出以及实际获得的输出(控制台输出,回溯等)。您提供的细节越多,您可能会收到的答案就越多。检查[FAQ]和[问]。 –

+2

你有两个问题,第一个询问如何检查给定的字符串是否是IP地址,第二个问是询问如何查找列表是否有4个项目。您似乎对第一个问题有正确的想法(使用“。”作为分隔符来分割字符串),而第二个问题可以通过引用列表类型的Python文档轻松地自行回答。尝试和实验更多一点,如果你仍然陷入困境,你可以在下次发布你的代码。 – 2015-09-25 17:15:41

+0

当您提出问题时,最好包含代码示例。举例说明你有什么和你想要得到什么。 – 16num

回答

1

这里需要多一点调试。例如,检查你的分割给你你想要的。其次,请阅读https://stackoverflow.com/help/mcve - 这列出了我们对发布的期望。

给出实际的输入和错误消息会给你一个更快的答案:你给列表fnmatch,它需要一个字符串。你走在正确的轨道上,但你可以更简单地做到这一点。

def success(): 
    print "good" 

def fail(): 
    print "bad" 

list = "10.10.10.127" 
fields = list.split(".") 

print fields 

if len(fields) == 4: 
    success() 
else: 
    fail() 

您是否还需要检查每个字段是否完全是数字?

+0

谢谢,这个为我工作。并且检查这些字段是否是数字会很有帮助。再次感谢。 –