python - 为什么我的子字符串检查返回 false?
问题描述
def is_substring(substring,string):
for count in range(len(string)):
if (string[count:count + len(substring)]) == substring:
return True
else:
return False
print(is_substring('dab', 'abracadabra'))
如果我尝试只打印这样的条件值:
def is_substring(substring,string):
for count in range(len(string)):
print (string[count:count + len(substring)]) == substring)
print(is_substring('dab', 'abracadabra'))
我得到这个输出:
python substrings.py
abr
胸罩
拉克
阿卡
cad
阿达
轻拍
abr
胸罩
拉
一个
没有任何
它打印 dab 词,它等于子字符串,但是当我尝试使用 if 条件使其等于子字符串时,它返回 false。为什么返回错误?
解决方案
你的 else 在第一次比较后返回。它应该这样编码:
def is_substring(substring, string):
for count in range(len(string)):
if (string[count:count + len(substring)]) == substring:
return True
return False
print(is_substring('dab', 'abracadabra'))
推荐阅读
- python - 机器人回复时没有通知
- flutter - 无法读取提供者数据,尽管它位于祖先小部件中。扑
- delphi - cxGrid 立即行选择
- angular - 如何在 Rxjs iif 条件运算符中将两个可观察对象组合在一起
- javascript - 如何在 socket.io 中更新我新连接的客户端?
- c++ - 具有 k 个断开顶点的三元组的总和
- php - 如何在 Bagisto 电子商务的客户/帐户页面的“sidemenu”上添加新图标
- r - 将 geom_point 大小与 geom_tile 大小匹配
- pine-script - 在高点上方止损的策略进入。延迟进入
- php - 更新库存数量