社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python全栈(一)基础之4.运算符

cupyter • 5 年前 • 398 次点击  

一、算术运算符

1.运算符:

用于执行程序代码运算,会针对一个以上操作数项目来进行运算。
例如:2+3,其操作数是2和3,运算符是“+”。

2.算数运算符

表现形式:

(1)加法运算符+

例如:

x=1+2
print(x)
  • 1
  • 2

如果是两个字符串相加,则会进行拼串操作。

(2)减法运算符-

x=5-2
print(x)
  • 1
  • 2

字符串不能进行相减,会报错。

(3)乘法运算符*

x=2*2
print(x)
  • 1
  • 2

两个字符串不能进行相乘,但是字符串可以和数字相乘,返回一个被重复若干次数的字符串。

(4)除法运算符/

x=6/2
print(x)
  • 1
  • 2

做除法运算时,总会返回一个浮点型数值,且0不能作除数,会报错。

(5)整除运算符//

x=7//3
print(x)
  • 1
  • 2

(6)取余运算符%

x=7%3
print(x)
  • 1
  • 2

(7)幂运算符**

x=2**3
print(x)
  • 1
  • 2

x = a ** 0.5即为对a开平方。

二、赋值运算符

概念:等号“=”可以将右侧的值赋值给左侧的变量。
例如:

x=10
print(x)
  • 1
  • 2

x+=a等价于x=x+a
x-=a等价于x=x-a
x*=a等价于x=x*a
x/=a等价于x=x/a
x//=a等价于x=x//a
x%=a等价于x=x%a

例如:

x=2
x+=3
print(x)


    

  • 1
  • 2
  • 3
x=5
x%=2
print(x)
  • 1
  • 2
  • 3

三、比较运算符

比较运算符是用来比较两个值之间的关系,总会返回一个布尔类型的值,如果关系成立,返回True,关系不成立则返回False。
r=10>20 print(r)
会打印出False。
>运算符:比较左侧值是否大于右侧值;
<运算符:比较左侧值是否小于右侧值;
>=运算符:比较左侧值是否大于或等于右侧值;
<=运算符:比较左侧值是否小于或等于右侧值;
==运算符:比较两个对象的值是否相等;
!=运算符:比较两个对象的值是否不相等。
例如:

r=2>True
print(r)
  • 1
  • 2

比较字符串:

r='2'>'1'
print(r)
  • 1
  • 2

打印True

r='2'>'11'
print(r)
  • 1
  • 2

打印True

r='a'>'b'
print(r)
  • 1
  • 2

打印False

r='ab'>'b'
proint(r)
  • 1
  • 2

打印False

r='2'>'20'
print(r)
  • 1
  • 2

打印False
字符串比较是逐位比较,若比较出大小关系则返回结果,否则进入字符串下一位比较。
※==只能比较两个对象的值是否相等,不能判断两个对象是否为同一个对象;
要用is来判断两个对象是否为同一个对象,判断的依据是对象的id值。
例如:

r=0 is False
print(r)
  • 1
  • 2

打印False

r=1 is not True
print(r)
  • 1
  • 2

打印True
内存中存储的是对象的id、类型、值,==比较的是值,is比较的是id。

四、逻辑运算符

主要用来进行逻辑判断。

1.逻辑非not

a=True
a=not a
print(a)
  • 1
  • 2
  • 3

对a进行非运算
not可以对符号右侧的值进行非运算。

a=None
a=not a
print(a)
  • 1
  • 2
  • 3

None为空值。
对于非布尔值,非运算会先将其先转化为布尔值,再做取反运算。
对于0、None、空字符串和其他一些表示空性的值会转化成False,剩下的转化为True。

2.逻辑与and

a=True and True
print(a)
  • 1
  • 2

打印True

a=True and False
print(a)
  • 1
  • 2

打印False

a=False and True



    
print(a)
  • 1
  • 2

打印False

a=False and False
print(a)
  • 1
  • 2

打印False
and可以对符号两侧的值进行与运算:
与运算找False
只有当符号两侧的值均为True时,才返回True;
只要有一个为False,就会返回False;
如果左边的值为True,则看右边,右边的值即为返回值;
如果左边的值为False,则直接返回False
True and print('Hello') 打印Hello,
False and print('Hello') 返回False。

3.逻辑或or

a=True or True
print(a)
  • 1
  • 2

打印True

a=True or False
print(a)
  • 1
  • 2

打印True

a=False or True
print(a)
  • 1
  • 2

打印True

a=False or False
print(a)
  • 1
  • 2

打印False
逻辑或可以对符号两侧的值进行或运算:
或运算找True
如果两个之中其中有一个为True,就会返回True;
两个值均为False,则返回False;
如果左边的值为True,则不看第二个值,直接返回True;
如果左边的值为False,看右边,右边的值即为返回值
True or print('Hello') 返回True,
False or print('Hello') 打印Hello。

五、非布尔值的与或运算

与运算:
如果第一个值是False,则返回第一个值,否则返回第二个值。

r = 1 and 2
print(r)
  • 1
  • 2

打印2
解释:1不为空值,所以为True

r = 0 and 1
print(r)
  • 1
  • 2

打印0
解释:0为空性值,所以返回0

r = None and 0
print(r)
  • 1
  • 2

打印None
解释:None为空性值,所以直接返回None
或运算:
如果第一个值是True,则返回第一个值,否则返回第二个值。

r=1 or 2
print(r)
  • 1
  • 2

打印1

r=0 or 1
print(r)
  • 1
  • 2

打印1

r=1<2<3
print(r)
  • 1
  • 2

打印True

六、条件运算符

又称三元运算符
语法为: 语句1 if 表达式 else 语句2
执行过程:条件运算符在执行时,先对条件表达式进行求值判断,如条件表达式为True,则执行语句1并返回执行结果,为False则执行语句2并返回执行结果。
例如:
print('Python') if True else print('Java) 打印Python

a=10
b=20
print('a is bigger than b') if a > b else print('b is bigger than a')
  • 1
  • 2
  • 3

打印b is bigger than a

a=30
b=50
m=a if a > b else b
print(m)
  • 1
  • 2
  • 3
  • 4

打印50

a=20
b=50
c=30
m=a if a>b else b
m=m if m>c else c
print(m)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

打印50

a=20
b=50
c=30
m=a if (a>b and a>c) else (b if b>c else c)
print(m)
  • 1
  • 2
  • 3
  • 4
  • 5

打印50

七、运算符的优先级

a=2 or 3 and 4
print(a)
  • 1
  • 2

打印2
解释:and的优先级比or的高,所以先算3 and 4得到4,再算2 or 4得到2。

a = not 4 > 2 and 5 < 6 or 3 < 4
print(a)
  • 1
  • 2

打印True

a = not (4 > 2 and 5 < 6 or 3 < 4)
print(a)
  • 1
  • 2

打印False,分析同上。
关于运算符的优先级的详细情况和运算符的其他知识可参考 https://blog.csdn.net/qq_41573234/article/details/81351693
或查看Python官方文档
https://docs.python.org/3/reference/expressions.html#operator-precedence

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/47817
 
398 次点击