任何人都可以解释为什么在测试时字符串中是否包含无值("")或字符串startswith
无值("" ),返回值为True
如:
>>> if "" in "L": print ("YES")
...
YES
>>> if "" in " ": print ("YES")
...
YES
>>> if "" in "abc": print ("YES")
...
YES
>>> if "abc".startswith(""): print (True)
...
True
https://docs.python.org/3/library/stdtypes.html#truth-value-testing
4.6.1。常用序列操作
州
x in s如果s的项等于x,则为True,否则为False
4.7.1。字符串方法
str.startswith(prefix [,start [,end]])如果字符串开始则返回True 使用前缀,否则返回False。
我真的想知道我是否可以依赖这种行为 它使用以下代码:
sub_choices = [c for c in self.choices if Input_Text.casefold() in c.casefold()]
和
sub_choices = [c for c in self.choices if c.casefold().startswith(Input_Text.casefold())]
在这种情况下如果Input_Text
为空,则sub_choices(由于意外发生)是self.choices
的全部内容