zoukankan      html  css  js  c++  java
  • Python2X学习7-python布尔类型

    Python支持布尔类型的数据,布尔类型只有TrueFalse两种值

    与运算:只有两个布尔值都为 True 时,计算结果才为 True。

    True and True   # ==> True
    True and False   # ==> False
    False and True   # ==> False
    False and False   # ==> False

    或运算:只要有一个布尔值为 True,计算结果就是 True。

    True or True   # ==> True
    True or False   # ==> True
    False or True   # ==> True
    False or False   # ==> False

    非运算:把True变为False,或者把False变为True。

    not True   # ==> False
    not False   # ==> True

    在Python中,布尔类型还可以与其他数据类型做 and、or和not运算

    a = True
    print a and 'a=T' or 'a=F'  # ==> a=T

    计算结果不是布尔类型,而是字符串 'a=T',因为Python把0空字符串''None看成 False,其他数值和非空字符串都看成 True,

    True and 'a=T' 计算结果是 'a=T'
    继续计算 'a=T' or 'a=F' 计算结果还是 'a=T'

    短路计算

    1. 在计算 a and b 时,如果 a 是 False,则根据与运算法则,整个结果必定为 False,因此返回 a;如果 a 是 True,则整个计算结果必定取决与 b,因此返回 b。

    2. 在计算 a or b 时,如果 a 是 True,则根据或运算法则,整个计算结果必定为 True,因此返回 a;如果 a 是 False,则整个计算结果必定取决于 b,因此返回 b。

    所以Python解释器在做布尔运算时,只要能提前确定计算结果,它就不会往后算了,直接返回结果。

    a = 'python'
    print 'hello,', a or 'world' # ==> hello, python
    
    b = ''
    print 'hello,', b or 'world' # ==> hello, world
  • 相关阅读:
    uva 10491 Cows and Cars
    uva 10910 Marks Distribution
    uva 11029 Leading and Trailing
    手算整数的平方根
    uva 10375 Choose and divide
    uva 10056 What is the Probability?
    uva 11027 Palindromic Permutation
    uva 10023 Square root
    Ural(Timus) 1081. Binary Lexicographic Sequence
    扩展欧几里得(求解线性方程)
  • 原文地址:https://www.cnblogs.com/liangpi/p/12560151.html
Copyright © 2011-2022 走看看