我有以下测试代码。我怎样才能使这个条件为真

Posted

技术标签:

【中文标题】我有以下测试代码。我怎样才能使这个条件为真【英文标题】:I have below test code. How can I made this condition to be True 【发布时间】:2019-09-28 23:02:24 【问题描述】:

。我知道 a.split 是 Str() 中的方法,但是当我将它放在变量上时,它会将其视为一个列表。

a="1.1.1.1/29"

aa=a.split('/')

>>aa == "29"

>>False

【问题讨论】:

使用print(aa)查看变量中的内容。 【参考方案1】:

你可以用in就行了

a="1.1.1.1/29"

aa=a.split('/')

>>"29" in aa

>>True

【讨论】:

【参考方案2】:

Split 确实将字符串拆分为子字符串,并在列表中返回结果子字符串。

以下条件返回真:

aa[1] == "29" 

【讨论】:

【参考方案3】:

str.split() 返回“用您指定的分隔符分割原始字符串后的字符串列表。

a = '1.1.1.1/29'
aa = a.split('/') # aa is now ['1.1.1.1', '29']
subnet = aa[1] # subnet is '29'

您可以在这里了解更多信息:https://www.pythonforbeginners.com/dictionary/python-split

【讨论】:

对不起。忘记包含索引。但这也可以。【参考方案4】:

str.split 给你一个列表,a.split('/') 也给你一个列表,如果你将一个列表与一个字符串进行比较,它显然会失败

您需要获取列表的最后一个元素并将其与29 进行比较,代码才能按如下方式工作。

In [119]: a="1.1.1.1/29"                                                                                                                                                          

In [120]: aa=a.split('/')                                                                                                                                                         
#Gives you a string
In [121]: aa                                                                                                                                                                      
Out[121]: ['1.1.1.1', '29']
#Second element of list is 29, comparison returns True
In [122]: aa[1] == '29'                                                                                                                                                           
Out[122]: True
#List to string comparison returns False
In [123]: aa == '29'                                                                                                                                                              
Out[123]: False

但是你可以使用in操作符来检查成员资格,看看该项目是否包含在字符串本身中,这样可以省去拆分字符串和比较列表项目的麻烦

In [125]: a="1.1.1.1/29"                                                                                                                                                          

In [126]: '29' in a                                                                                                                                                               
Out[126]: True

【讨论】:

以上是关于我有以下测试代码。我怎样才能使这个条件为真的主要内容,如果未能解决你的问题,请参考以下文章

我可以快速失败一个测试系列吗?

有条件的,我怎样才能使操作自动化?

基本布尔逻辑——如何仅在另一个条件为真时测试条件

如何测试一个条件是不是为真?

如何在测试代码时完全覆盖条件(例如 PHP 和 xdebug)

我怎样才能使这个二进制搜索代码更有效?