Python基础:九、运算符

时间:2019-04-27 13:47:12   收藏:0   阅读:198

一、赋值运算

       简单的赋值运算符号:=

c = a + b   #将a+b的元算结果赋值给c

       加法赋值运算符:+=

c += a   #等效于 c = c + a

       减法赋值运算符:-=

c -= a    #等效于 c = c - a

       乘法赋值运算符:*=

c *= a    #等效于 c = c * a

       除法赋值运算符:/=

c /= a    #等效于 c = c / a

       取模赋值运算符:%=

c %= a    #等效于 c =c % a

       幂赋值运算符:**=

c **= a    #等效于 c = c ** a

       取整除赋值运算符://=

c //= a    #等效于 c = c // a

 

二、算术运算

       加---两对象相加:+

a + b

       减---两对象相减:-

a - b

       乘---两对象相乘,或是返回一个被重复若干次的字符串:*

a * b

       除---a除以b:/    #计算机表示小数的时候会有误差

a / b

       取模---返回除法的余数:%

a % b

       幂---返回a的b次幂:**

a ** b

 

       取整除---返回商的整数部分://

a // b

 

三、比较运算,返回值为布尔值

       等于:=

a == b    #返回值为 True 或 False

       不等于:!=或<>

a != b    #返回值为 True 或 False

a <>b    #返回值为 True 或 False ,在python3.6中不支持,用 != 替代

       大于:>

a > b    #返回值为 True 或 False

       小于:<

a < b    #返回值为 True 或 False

       大于等于:>=

a >= b    #返回值为 True 或 False

       小于等于:<=

a <= b    #返回值为 True 或 False

 

四、逻辑运算

       1.  and:布尔"与"     x and y

如果x为False,x and y 返回 False,否则它返回 y 的计算值

       and是并且的意思,左右两端的值必须都是真,运算结果才是真,出现False即停止运算

print(True and True and False and False and True and False)
#返回值为False,只运算到第一个False就停止运算了 

      2.  or:布尔"或"    x or y

如果 x 为 True,它返回 True ,否则返回y的计算值

       or是或者的意思,左右两端有一个是真的,结果就是真,只有全部都是假,结果才能是假

a or b    #返回值为 True(a或b有一个为True) 或 False(a或b都为False)

print( True or False)  #返回值为True 

       3.  not:布尔"非"     not x

如果x为True,返回False;如果x为False,则返回True

       not是非的意思,原来是假,现在是真;非真即假,非假即真

not(Ture and True)    #返回值为False

print(not True)    #返回值为False

print(not not not not not not False)    #返回值为False,因为每两个not相互抵消了 

"""

针对逻辑运算有进一步的研究:

1. 在没有 () 的情况下,not 优先级高于 and ,and 优先级高于 or ,同一优先级,从左往右计算

   即优先级关系为 () > not > and > or

   例题:判断下列逻辑语句的结果是True还是False

     3>4 or 4<3 and 1 == 1

     1<2 and 3<4 or 4>5 and 2<1

     1>2 and 3<4 or 4>5 and 2>1 or 9<8

     1>1 and 3<4 or 4>5 and 2>1 and 9>8 or 7<6

      not 2>1 and 3<4 or 4>5 and 2>1 and 9>8 or 7<6

   解法:

     第一题:

     a.先把每个比较算式运算出来,如第一个将变为:False or False and True

     b.再按照 () > not > and > or 的优先级进行运算:此时第一题将先计算 False and True,结果为False

     c.继续按照优先级进行计算:此时需要计算的算式变为了 False or False

        故第一题的结果为False

     第二题

     a.先把每一个比较运算式计算出来:True and True or False and False

     b.第一个 and 的算式为 True and True,计算结果为True

     c.第一个 and 相连的运算符为 or,而 o r的两边只要出现 True,or 算式的结果即为 True

       故第二题的答案为True

     第三题

     a.先把每一个比较运算式计算出来:False and True or False and True or False

     b.第一个and的算式为False and True,结果为False:第二个 and 的算式为 False and True,结果为False

     c.此时算式变为False or False or False

       故第三题的答案为False

     第四题

       方法同上,注意True的断电机制

     第五题

     a.先把每一个计较算式运算出来:not True and True or False and True and True or False

     b.存在not,先计算not,not True结果为False:False and True o rFalse and True and True or False

     c.依此计算and:False or False or False

     d.计算or

       故第五题的结果为False

 

2.x or y,x为真,值就是x;x为假,值就是y

  如果 x != 0,那么就是x;如果 x == 0,那么就是y;如果第一个数是0,则选择第二个数,如果第一个数不是0,则选择第一个数

  x and y , x为真,值是y ;x为假,值是x

 如果 x!=0 ,那么值就是y,如果 x == 0,那么就是x;即如果第一个数是零,则选择第一个数(选择0),如果第一个数不是零,则选择第二个数

 or和and是相反的

 例题:求出下列逻辑语句的值

          8 or 4

          0 and 3

          0 or 4 and 3 or 7 or 9 and 6

 解法:

   第一题

   a.第一个数不等于0,所以结果为第一个数,8

   第二题

   a.第一个数是0,所以结果是第一个数,0

   第三题

   a.先计算and,4and3 和 9and6:0 or 3 or 7 or 6

   b.再计算or

      0 or 3--->3

      3 or 7--->3

      3 or 6--->3

      故结果为3

 

3. 2>5 and 3   #False相当于0

    解法:

      a.先计算比较算式,2>5--->False

      b.False and 3 相当于 0 and 3    #False相当于0

      c.故结果为False

   2<1amd4>6or3and4>5or6

    解法:

      a.先计算比较算式:False and False or 3 and False or 6

      b.再计算and:False and False ---> False

                          3 and False ---> 相当于 3 and 0 ---> False

                          故 False or False or 6

      c.再计算or:False or False ---> False

                       False or 6 ---> 相当于0 or 6 ---> 6

                      故计算结果为6

 

注意混合型:

  如:2>1 or 1

        2<1 or 1

原文:https://www.cnblogs.com/joetan/p/10778442.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!