Python核心编程基础教程之Python运算符、运算符优先级、表达式简介
1.Python运算符与表达式:
(1)认识Pyhton运算符1:什么是运算符
在Python运算中,有时候我们需要对一个或者多个数字或者一个或者多个字符串进行运算操作,*,+
(2)认识Pyhton运算符2:运算符有哪些以及运算符的使用方法
+ :加
- :减
* :乘
/ :除
** :幂
< :小于
> :大于
!= :不等于
// :求相除的整数部分
% :求相除的余数部分
& :按位与
| :按位或
^ :按位异或
~ :取反
>> :右移
<< :左移
<= :小于等于
>= :大于等于
== :等号,一个等号叫赋值
not :逻辑非
and :逻辑与
or :逻辑或
#实例:
1)#"+":两个对象相加
#两个数字相加
a = 7+8 print a
#输出结果:
15
2)#两个字符串相加
b = "GOOD"+" JOB!" print b
#输出结果:
GOOD JOB!
3)#"-":取一个数字的相反数或者实现两个数字相减
a = -7 print a b = -(-8) print b
#输出结果:
-7
8
c = 19-1 print c
#输出结果:
18
4)#"*":两个数相乘或者字符串重复数字的次数
a = 4*7 print a b = "hello"*7 print b
#输出结果:
28
hello
hello
hello
hello
hello
hello
hello
5)#"/":两个数字相除
a = 7/2 print a #除数和被除数是整数,那么结果也是整数 b = 7.0/2 c = 7/2.0 #除数和被除数其中有一个是浮点数,那么结果也会有小数 print b print c
#输出结果:
3
3.5
3.5
6)#"**":求幂运算
a = 2**3 #相当于2的3次幂,就是2*2*2 print a
#输出结果:
8
7)#"<":小于符号,返回一个bool值
a = 3<7 print a b = 3<3 print b
#输出结果:
Ture
False
8)#">":大于符号,返回一个bool值
a = 3>7 print a b = 3>1 print b
#输出结果:
False
Ture
9)#"!=":不等于符号,同样返回一个bool值
a = 2!=3 print a b = 2!=2 print b
#输出结果:
Ture
False
10)#"//":除法运算,然后返回其商的整数部分,舍掉余数
a=10//3 print a
#输出结果:
3
11)#"%":除法运算,然后返回其商的余数部分,舍掉商
a=10%3 print a
#输出结果:
1
b=10%1 #没有余数的时候返回什么? print b
#输出结果:
0
a=10//3 #a为商的整数部分 b=10%3 #b为 c=3*a+b #c为除数乘以商的整数部分加上余数,应该c的值就是被除数 print c
#输出结果:
10
12)#"&":按位与运算,所谓的按位与是指一个数字转化为二进制,然后这些二进制的数按位来进行与运算,同1为1
a=7&18 #执行一下,为什么7跟18与会得到2呢?? print a
#输出结果:
2
‘‘‘首先我们打开计算器,然后我们将7转化为二进制,得到7的二进制值是:111,自动补全为8位,即00000111
然后我们将18转化为二进制,得到18二进制的值是10010,同样补全为8位,即00010010
再然后,我们将00000111
,跟 00010010按位进行与运算,
得到的结果是:00000010,然后,我们将00000010转化为十进制
得到数字二,所以7跟18按位与的结果是二进制的10,即为十进制的2
‘‘‘
13)#"|":按位或运算,同样我们要将数字转化为二进制之后按位进行或运算,有1为1
a=7|18 print a
#输出结果:
23
‘‘‘我们来分析一下,同样我们的7的二进制形式是00000111,18的二进制形式是00010010
我们将 00000111
跟 00010010按位进行或运算,
得到的结果是00010111,然后,我们将00010111转化为十进制
得到数字23,所以7跟18按位或的结果是二进制的10111,即为十进制的23
‘‘‘
14)#"^"按位异或,异或指的是,不同则为1,相同则为0
a=7^18 print a
#输出结果:
21
‘‘‘
首先,异或指的是,不同则为1,相同则为0.
我们来分析一下,同样我们的7的二进制形式是00000111,18的二进制形式是00010010
我们将 00000111
跟 +00010010按位进行异或运算,
得到的结果是00010101,然后,我们将00010101转化为十进制
得到数字21,所以7跟18按位异或的结果是二进制的10101,即为十进制的21
‘‘‘
15)#"~":按位翻转~x = -(x+1)
a=~18 # ~18=-(18+1)=-19 print a
#输出结果:
-19
16)#"<<":左移
‘‘‘
比如18左移就是将他的二进制形式00100100左移,即移后成为00100100,即成为36,左移一个单位相当于乘2,左移动两个单位
相当于乘4,左移3个单位相当于乘8,左移n个单位相当于乘2的n次幂。
‘‘‘
a=18<<1 print a b=3<<3 print b
#输出结果:
36
24
17)#"<<":右移
‘‘‘
右移是左移的逆运算,即将对应的二进制数向右移动,右移一个单位相当于除以2,右移动两个单位相当于除以4,右移3个单位相当于
除以8,右移n个单位相当于除以2的n次幂。
‘‘‘
a=18>>1 print a b=18>>2#从00010010变成00000100,即结果为4,相当于18//(2**2) print b
#输出结果:
9
4
18)#"<=":小于等于符号,比较运算,小于或等于,返回一个bool值
a=3<=3 b=4<=3 print a print b
#输出结果:
Ture
False
19)#">=":大于或等于,比较运算,返回bool值
a=1>=3 print a b=4>=3 print b
#输出结果:
False
Ture
20)#"==":比较两个对象是否相等,返回bool值
a = 12==13 print a b="hello"=="hello" print b
#输出结果:
False
Ture
21)#not:逻辑非,将bool值进行not运算
a=True b = not a print b c=False print not c
#输出结果:
False
Ture
22)#and:逻辑与,Bool值与运算,相交,同真为真
‘‘‘
True and True等于True
True and False等于False
False and True等于False
‘‘‘
print True and True
#输出结果:
Ture
23)#or:逻辑或,Bool值或运算,相与,有真为真
‘‘‘
True and True等于True
True and False等于True
False and False等于False
‘‘‘
print True or False
#输出结果:
Ture
2.Python运算优先级
(1)什么是Python优先级:
Python运算的程序或运算符执行是有先后顺序的,如果A,和B同时出现,如果A可以优先于B,那么说明A的优先级高于B,B的优先级低于A,其中,A,B可以是运算符,也可以使程序。
分类:
程序间的优先级
运算符间的优先级
#实例:
1)#优先级的作用:
a = 2+7*8 #乘号优先级高于加减 print a b=9>7 print b
#输出结果:
58
Ture#说明>优先级高于等号=
(2)Python优先级使用实战
#优先级实例:
#优先级排行榜第1名——函数调用、寻址、下标
#优先级排行榜第2名——幂运算**
a=4*2**3 print a
#输出结果:
32
#优先级排行榜第3名——翻转运算~
#"~":按位翻转~x = -(x+1)
a=~18 # ~18=-(18+1)=-19 print a
#输出结果:
-19
#优先级排行榜第4名——正负号区别于加减号
print 2+4*- 2 #我们可以看,正负号的使用方法是紧挨着操作数的,否则会出错,这就 #说明正负号优先于加减乘除运算,加减号是跟着数字的
#输出结果:
-6
#优先级排行榜第5名——*、/、%
print 2+4*2/4
#输出结果:
4
#优先级排行榜第6名——+、-
print 3<<2+1
#输出结果:
24
#00000011变成00011000,即24
#优先级排行榜第7名——<<、>>
#优先级排行榜第8名——按位&、^、|,其实这三个中也是有优先级顺序的,但是他们处于同一级别,故而不细分
#优先级排行榜第9名——比较运算符<,>,=.>=,<=,==
a=2*3+5<=5+1*2 print a
#输出结果:
False#11<=7
#优先级排行榜第10名——逻辑的not、and、or
#优先级排行榜第11名——lambda表达式,延迟执行
3.运算符优先级的基本规律与特点
(1)Python常见运算符优先级使用规律
#优先级使用规律
#1、一般情况下是左结合的,从左往右
print 4+6+5*6+6
#输出结果:
46
#2、出现赋值的时候一般是右结合,从右往左
a=8+91 print a
#输出结果:
99
(2)Python优先级规律记忆心法
函数寻址下标一
幂运算小二笑嘻嘻
全体单元第三位#比如翻转运算~,正负号(紧跟操作数),一个操作对象的运算符,单,一个;元,操作数;
乘除求余四千里
乘除完了无(五)加减
六娃喜欢左右移
老七按位或跟与
八仙过海比实力(比较运算)
倒数第一逻辑或非与
#lambda表达式在刚开始很少遇到,遇到容易将其放到最低优先级,所以为了方便记忆将其默认最后即可
(3)Python优先级使用的小技巧
#优先级使用小技巧
#如果实在分不清哪个优先级高哪个优先级低也没关系,只要用()改变优先级即可
a=2+3*7 b=(2+3)*7 c=((2+3)+5)*7#多括号从内开始往外拔开,优先内部 print a print b print c
输出结果:
23
35
70
4.Python表达式简介
(1)什么是Python的表达式
Python在变成中,我们把其中的值,变量和运算符共同组成的整体我们将其称为表达式,如:“ok”,a="hello ,my girl",a=5,等都是表达式
#什么是表达式
#1
"Hello"#字符串表达式
#2
25+7#计算表达式
#3
a=67#等式表达式
a#变量
#4
a="hello"
(2)Python表达式的使用
特点:
1)单行命令:(进入单行命令行编程模式)
a)值表达式:值表达式结果仍然为值
>>> 8#Enter 8 b)变量表达式 >>>a="ok" >>>a >>>"ok" c)计算表达式:结果为计算 >>>7+8 15 d)字符串表达式 >>>"OK" ‘ok‘
2)多行命令:
F5运行没有结果
(3)表达式执行与print执行结果的区别
Python的表达式执行结果和print是有区别的:字符串输出结果不同,表达式输出有单引号,Print没有引号
>>>"QQ" #Enter ‘QQ‘ >>>print "QQ" QQ >>>a=7 >>>a 7 >>>print a 7