Python基础之运算符

1.运算符

1.1 运算符的概念

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

1.2 运算符的分类

  • 算术运算符
  • 赋值运算符
  • 比较运算符(关系运算符)
  • 逻辑运算符
  • 条件运算符(三元运算符)

2. 算术运算符

>>> 1 + 2   #加法运算符 ‘+’
3
>>> 2 - 1   #减法运算符 ‘-’
1
>>> 2 * 3   #乘法运算符 ‘*’
6
>>> 4 / 2   #除法运算符 ‘/’
2.0
>>> 7 // 3  #整除运算符 ‘//’
2
>>> 5 %3    #取模运算符 ‘%’
2
>>> 3 ** 3  #幂运算符  ‘**’
27
  • // 整除,只会保留计算后的整数位,总会返回一个整型
  • % 取模,求两个数相除的余数
  • ** 幂运算,求一个值的几次幂

3. 赋值运算符

复制运算符的特殊写法 x = x + 3 其实是和 x += 3 是一样的

  • += (x+= 3 相当于 x = x + 3 )
  • -= (x -= 3 相当于 x= x - 3 )
  • *= (x = 3 相当于 x = x 3 )
  • **= (x **= 3 相当于 x = x ** 3 )
  • /= (x /= 3 相当于 x = x/ 3 )
  • //= (x //= 3 相当于 x = x // 3 )
  • %= (x %= 3 相当于 x= x % 3 )

4. 比较运算符

  • 比较运算符用来比较两个值之间的关系,总会返回一个布尔值.如果关系成立,返回True,否则返回False
  • > 比较左侧值是否大于右侧值
  • >= 比较左侧的值是否大于或等于右侧的值
  • < 比较左侧值是否小于右侧值
  • <= 比较左侧的值是否小于或等于右侧的值
  • 特殊的比较方式
    • == 比较两个对象的值是否相等
    • != 比较两个对象的值是否不相等
    • is 比较两个对象是否是同一个对象,比较的是对象的id
    • is not 比较两个对象是否不是同一个对象,比较的是对象的id

5. 逻辑运算符

5.1 not 逻辑非

  • not可以对符号右侧的值进行非运算对于布尔值,非运算会对其进行取反操作,True变False,False变True
# not 逻辑非
a = 1 # ture
a = not a # False
r = none # 0 空串 none ---> False
r = not r # ture

5.2 and 逻辑与

  • and可以对符号两侧的值进行与运算。 只有在符号两侧的值都为True时,才会返回True,只要有一个False就返回False
  • 与运算是找False的,如果第一个值为False,则不再看第二个值
# and 逻辑与 找False
r = Ture and Ture # Ture
r = Ture and False # False
r = False and Ture # False
r = False and False # False
Ture and print('Hello world') # Hello world
False and print('Hello world') # False

5.3 or 逻辑或

  • 或运算两个值中只要有一个True,就会返回True
  • 或运算是找True的
# or 逻辑或 找Ture
r = Ture and Ture # Ture
r = Ture and False # Ture
r = False and Ture # Ture
r = False and False # False
Ture or print('Hello world') # Ture
False and print('Hello world') # Hello world

5.4 非布尔值的与或运算

  • 当我们对非布尔值进行与或运算时,Python会将其当做布尔值运算,最终会返回原值
  • 非布尔值与运算的规则
    • 与运算是找False的,如果第一个值是False,则不看第二个值。如果第一个值是False,则直接返回第一个值,否则返回第二个值
  • 非布尔值或运算的规则
    • 或运算是找True的,如果第一个值是True,则不看第二个值。如果第一个值是True,则直接返回第一个值,否则返回第二个值
## 非布尔值的与或运算
#非布尔值与运算,找False
result = 1 and 2            #2
result = 0 and 2            #0
result = 0 and None         #0
result = 2 and 1            #1
#非布尔值或运算,找True
result = 1 or 2             #1
result = 0 or 2             #2
result = 0 or None          #None
result = 2 or 0             #2

6. 条件运算符(三元运算符)

image

条件运算符在执行时,会先对条件表达式进行求值判断
如果判断结果为True,则执行语句1,并返回执行结果
如果判断结果为False,则执行语句2,并返回执行结果
语法: 语句1 if 条件表达式 else 语句2

a = 1
b = 5
print('a 的值比较大') if a > b else print('b 的值比较大') # b 的值比较大

# 比较a,b的最大值
a = 2
b = 1
m = a if a > b else b
print(m)  #2

7. 运算符的优先级

运算符优先级参照表

image

思考

现在有a b c三个变量,三个变量中分别保存有三个数值,请通过条件运算符获取三个值中的最大值

a = 2
b = 1
c = 3
m1 = a if a>b>c else b
m2 = m1 if b>c else c
print(m2)
image

更多方法

# a b c三个变量 分别保存不同的值 通过条件运算符获取3个值中的最大值

# 第一种写法
 a = 150000
 b = 2000
 c = 300
 max = a if a > b else b
 max = max if max > c else c
 print(max)

# 第二种
 max = a if a > b and a > c else b if b > c else c
# max = a if (a > b and a > c) else (b if b > c else c)
 print(max)

#高端操作
 x,y,z = eval(input('请输入三个数a b c 的最大值'))
 a = x
 b = y
 c = z
 if x >= z:
     if x >= y:
         print('a =',a)
     elif y >= z:
         print('b =',b)
 else:
     print('c = ',c)

#用max函数
a = 9
b = 3
c = 6
m = a if a > b > c else max(b,c)
print(m)
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容