当前位置: 首页 > 知识库问答 >
问题:

python中字符串的真值

谷梁永年
2023-03-14
if <boolean> :
   # do this

布尔值必须为True或False。

那为什么

if "poi":
   print "yes"

输出:是

我不明白为什么是打印,因为“poi”不是真是假。

共有3个答案

皇甫浩壤
2023-03-14

这里发生的是Python对if后面的隐式bool()构造函数的补充,因为任何后面跟着if的东西都应该被解析为布尔值。在这种情况下,您的代码相当于

if bool("hello"):
   print "yes"

根据Pythonbool(x)constructor接受任何东西,并根据以下情况决定真实性

  • 如果x是整数,则只有0False其他所有内容都是True
  • 如果x是float,那么只有0.0False其他所有内容都是True`
  • 如果x是list,则只有[]False其他所有内容都是True
  • 如果设置了x/dict,则只有{}False其他所有内容均为True
  • 如果x是tuple,则只有()False其他所有内容都是True
  • 如果x是字符串,则只有False其他所有内容都是True。请注意bool(“False”)将返回到True

这是我上面列出的案例的日志

Python 3.4.3 (default, Feb 25 2015, 21:28:45) 
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.56)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> bool(0)
False
>>> bool(1)
True
>>> bool(-1)
True
>>> bool(0.0)
False
>>> bool(0.02)
True
>>> bool(-0.10)
True
>>> bool([])
False
>>> bool([1,2])
True
>>> bool(())
False
>>> bool(("Hello","World"))
True
>>> bool({})
False
>>> bool({1,2,3})
True
>>> bool({1:"One", 2:"Two"})
True
>>> bool("")
False
>>> bool("Hello")
True
>>> bool("False")
True
齐修贤
2023-03-14

在python中,除了空字符串之外的任何字符串都默认为True

即,

if "MyString":
    # this will print foo
    print("foo")

if "":
    # this will NOT print foo
    print("foo")
龙德润
2023-03-14

当一个表达式需要一个布尔值时,Python将尽力评估该表达式的“真实性”。

字符串的规则是将空字符串视为False,将非空字符串视为True。同样的规则也适用于其他容器,因此空字典或列表被视为False,包含一个或多个条目的字典或列表被视为True

对象也被认为是false。

数值0被认为是false(尽管字符串值'0'被认为是true)。

所有其他表达式都被视为True

详细信息(包括用户定义类型如何指定真实性)可以在这里找到:http://docs.python.org/release/2.5.2/lib/truth.html.

 类似资料:
  • 问题内容: 在Python中,什么时候以及什么时候使用字符串连接与字符串替换比较容易。由于字符串连接的性能有了很大的提高,这(成为更多)是一种风格上的决定,而不是一种实际的决定吗? 举一个具体的例子,如何处理灵活的URI: 编辑:也有关于加入字符串列表和使用命名替换的建议。这些是中心主题的变体,即在什么时候做正确的方法?感谢您的回复! 问题答案: 根据我的机器,连接的速度(明显)更快。但是从风格上

  • 问题内容: 因此,我花了很多时间在此上,在我看来,这应该是一个简单的修复。我正在尝试使用Facebook的身份验证在我的网站上注册用户,并且正在服务器端进行操作。我已经到了获取访问令牌的地步,并且当我去: https://graph.facebook.com/me?access_token=MY_ACCESS_TOKEN 我得到的信息就是这样的字符串: 似乎我应该可以使用它,但出现此错误: 所以我

  • 本文向大家介绍Python 去除字符串中指定字符串,包括了Python 去除字符串中指定字符串的使用技巧和注意事项,需要的朋友参考一下 1、背景 最近的项目中,再次踩到Python字符串处理的坑,决定把此次解决方案记录一下,以勿踩坑。 2、遇到坑 原本字符串:大坪英利国际8号楼88-88号重庆汉乔科技有限公司大坪英利国际8号楼 去除最左边的字符串:大坪英利国际8号楼 预期结果:88-88号重庆汉乔

  • 问题内容: 如何在Python中创建随机字符串? 我需要先编号然后重复字符,直到完成为止,这就是我创建的 问题答案: 从(例如)小写字符生成字符串: 结果:

  • 本文向大家介绍字符串在Python中的endswith(),包括了字符串在Python中的endswith()的使用技巧和注意事项,需要的朋友参考一下 在本教程中,我们将学习字符串的endswith()方法。 如果字符串以给定的子字符串结尾,则endswith()方法将返回True,否则将返回False。它需要一个必需参数和两个可选参数。 必需参数是需要检查的字符串,可选参数是,它们是开始索引和结

  • 主要内容:处理字符串中的引号的,字符串的换行,Python长字符串,Python原始字符串若干个字符的集合就是一个 字符串(String)。 Python 中的字符串必须由双引号 或者单引号 包围,具体格式为: "字符串内容" '字符串内容' 字符串的内容可以包含字母、标点、特殊符号、中文、日文等全世界的所有文字。 下面都是合法的字符串: "123789" "123abc" "https://www.xnip.cn/python/" "小牛知识库成立8年了" Python 字符串中的双