为什么python的解释不是空的strig的对象是逻辑False?

krz*_*hub -5 python

我不明白为什么空字符串不是False,就像空字符串一样.我认为角色集合不仅仅是更少.在这种情况下,python目的的根源是什么?

>>> "" in 'fdsa'
True
>>> '' in ''
True
>>> 'asdf' in ''
False
>>> 'adsf' is True
False
Run Code Online (Sandbox Code Playgroud)

Sve*_*ach 6

我不太明白你的问题.您在这里使用两个运算符:

  1. infor strings检查第一个字符串是否是第二个字符串的子字符串. 空字符串被视为每个其他字符串的子字符串.

  2. is测试对象标识并返回True两个运算符是同一个对象. 'adsf'并且True显然不是同一个对象,所以你得到了False.

这两个运算符中没有一个与解释布尔上下文中的字符串有关 - 您的问题似乎也触及了这一点.例如,布尔上下文将是if语句的条件.在布尔上下文中,空字符串被视为False非空字符串True.您可以使用,查看对象在布尔上下文中的行为方式bool(obj).