[英]My code doesn't print ''No matches found'', why?
这是我的代码。 它不打印“未找到匹配项”,我认为这与节开始程序有关
scores_and_similarities = "somestring" # value can be empty
similarities = scores_and_similarities.split(',')
if similarities == '':
print('\tNo matches found')
for similarity in similarities:
print('\t%s' % similarity)
str.split
返回一个list
而不是string
。 使用真实性测试您的价值:
similarities = scores_and_similarities.split(',')
if not similarities # better than if similarities == []
print('\tNo matches found')
请注意,仅当输入字符串为空时, str.split
返回一个空列表。 所以你可以测试
if not scores_and_similarities:
print('\tNo matches found')
else:
# split and process
尽管我怀疑您期望str.split
在字符串不包含逗号的str.split
下返回空列表,但事实并非如此:
>>> ''.split(",")
>>> []
>>> 'iii'.split(",")
['iii']
因此,也许您想测试字符串中是否包含,
(请注意:测试拆分后的字符串是否具有1个长度是否相同:
if ',' not in scores_and_similarities:
print('\tNo matches found')
这是因为在拆分之后,它返回空列表[]
而不是空字符串''
。
scores_and_similarities = "somestring" # value can be empty
similarities = scores_and_similarities.split(',') # empty list is returned
if similarities == '': # [] is not equal to ''
print('\tNo matches found')
for similarity in similarities:
print('\t%s' % similarity) # so answer is this
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.