和老黄一起学Python

Python 运算符

2017-01-14  本文已影响34人  老黄爱Python
逻辑和运算是程序重要组成部分,我们先来认识Python中的运算符:

1:算数运算符
2:比较运算符
3:逻辑运算符


1. 算数运算符:
运算符 描述
+, -, *, / 加减乘除
% 求余
** 幂运算
// 地板除只保留商

具体使用如下:

>>> x =10
>>> y = 20
>>> x + y
30
>>> x * y
200
>>> x / y
0.5                      #计算结果:浮点
>>> y / x
2.0
>>> x ** 2               #幂运算
100 
>>> x // y
0                        #计算结果:只取整数部分
>>> y // x
2                        #计算结果:只取整数部分

算数运算符的优先级,通过实验证明下:

>>> 3 * 4 ** 2      #从结果看:先计算4**2=16, 在计算3*16=48 ,所以优先级 幂运算大于乘法
48
>>> 10 - 2 * 6      #从结果看:先计算2*6=12, 在计算 10-12 = -2, 所以优先级 乘法大于减法
-2

优先级:幂运算 , 乘除求余地板除, 加减法
编程过程中如何解决默认优先级问题,比如先计算加减,在计算乘除?
我们使用()解决优先级问题;
例如年计算年薪:(基本薪资+补助-保险)* 12

>>> salary = 8000
>>> added = 200
>>> deduction = 500
>>> all = (salary + added - deduction) * 12
>>> all
92400
2. 比较运算符:
运算符 描述(a, b为操作数)
== 恒等于:a == b, a等于b, 值为True,否则为False
!= 不等于:a != b, a不等于b, 值为True,否则为False
> 大于:a > b, a大于b, 值为True,否则为False
< 小于:a < b,a小于b, 值为True,否则为False
>= 大于等于:a >= b:,a小于或等于b, 值为True,否则为False
<= 小于等于:a<=b,a小于或等于b,值位True,否则为False

比较运算符,一操作就明白意思:

>>> a = 10
>>> b = 20
>>> a == 10
True
>>> a != 10
False
>>> a > b
False
>>> a < b
True
>>> a >= 8
True
>>> a >= 10
True

比较运算符和if/else语句一起使用:
脚本文件 test.py:

passline = 60
score = int(raw_input('Enter:')) #输入的字符串转化成数字,只能输入数字
if score > 60:
    print ('Pass')
else:
    print ('Failed')

执行结果如下:

$ python test.py 
Enter:80
Pass
$ python test.py 
Enter:40
Failed
3. 逻辑运算符:
运算符 描述 (a,b为操作数)
and 逻辑与:a and b, a和b全为真,表达式值为运算符最后一个操作数,否则为第一个值为假的操作数
or 逻辑或:a and b,a和b有一个为真,表达式值为第一个是真的操作数,否则为False
not 逻辑非,not a,a为真,表达式结果假,反之为真

解释半天不如实际操作一番,先来看and:

>>> a = 10
>>> b = 20
>>> a and b                  #操作数全为真,返回最后一个操作数
20
>>> a and b and 100          #操作数全为真,返回最后一个操作数
100
>>> a and b and 0            #0为假
0
>>> 0 and a                  #0为假
0
>>> print (a and b and None) #返回第一个不为真的操作数None
None
>>>

再开看or:

>>> a = 10
>>> b = 20
>>> a and b       #返回第一个是真的操作数
20
>>> a or None     #返回第一个是真的操作数,就算有假也改变不了
10
>>> None or False #都是假,返回最后一个操作数
False
>>> not a         #顺便看下not
False
>>> not None
True
>>> not 10
False
>>> 
4. 优先级问题:

先验证算术运算符

>>> 100/10**2      #如果先计算100/10,那么结果还是100,所以先计算10**2
1
>>> a = 10
>>> b = 20
>>> b - a * 2      #解释为: t=a*2=20, b-t=0, *优先级高于减法
0
>>> a + b - 10     #加减法优先级相同,从左向右计算
20
>>> a * b / 20     #*/%优先级相同,从左向右计算(其他运算符自己操作下)
10
>>>

验证算数运算符和比较运算符:

>>> a = 10
>>> b = 20
>>> a - b > 1   #这个怎么说?看下面单步分析
False 
>>> a - b       #a-b的值-1, -1>1的值肯定是False,所以先减法后比较
-10
>>> b > 1       #反推:b>1的值True
True
>>> a - True    #a-True的值是9,a-b>1的值不是9,所以,先比较后计算不成立
9

验证比较运算符和逻辑运算符:

>>> not - 1 > 0   #咋弄?逐步分析:从左向右
True
>>> not  - 1      #:not -1 的值False
False
>>> False > 0     #推出肯定不是先计算not -1,推出先计算-1 > 0吗,然后计算not
False
>>> 10 > 8 and 1  #再看and :如果先计算8 and 1返回值应该是True,所以...
1

结果已经出来了:
幂运算>乘除>加减>比较运算符>逻辑运算

算数运算符就讲到这里,后面代码编写过程中我们经常用到,理解大于记住,但是能记住还是要记住。

上一篇下一篇

猜你喜欢

热点阅读