Python基础——运算符

  • 1.运算符
  • 1.1 运算符概念
  • 1.2 运算符的分类
  • 2.算数运算符
  • 3.赋值运算符
  • 4.比较运算符
  • 5. 逻辑运算符
  • 5.1 not 逻辑非
  • 5.2 and 逻辑与
  • 5.3 or 逻辑或
  • 5.4 非布尔值的与或运算
  • 6.条件运算符
  • 7.运算符的优先级
  • 最后的小问题:


1.运算符

1.1 运算符概念

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

1.2 运算符的分类

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

2.算数运算符

  • 加法运算符:+
  • 减法运算符:-
  • 乘法运算符:*
  • 除法运算符:/
  • 整除运算符://
    只会保留计算后的整数位,总会返回一个整型
  • 取模运算符:%
    求两个数相除的余数
  • 幂运算符:**
    求一个值的几次幂

3.赋值运算符

赋值运算符的特殊写法 x = x + 1 其实是和 x += 1 是一样的

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

4.比较运算符

  • 比较运算符用来比较两个值之间的关系,总会返回一个布尔值。如果关系成立,返回True,否则返回False
  • > 比较左侧值是否大于右侧值
  • >= 比较左侧的值是否大于或等于右侧的值
  • < 比较左侧值是否小于右侧值
  • <= 比较左侧的值是否小于或等于右侧的值
  • 特殊的比较方式:
  • == 比较两个对象的值是否相等
  • != 比较两个对象的值是否不相等
  • is 比较两个对象是否是同一个对象,比较的是对象的id
  • is not 比较两个对象是否不是同一个对象,比较的是对象的id
    注意:id表示对象在内存空间中的存储位置
# == 比较两个对象的值是否相等
result = 5 == 5                #True
result = 4 == 8                #False
result = 'friend' == 'friend'  #True
result = 'work' == 'life'      #False
# - != 比较两个对象的值是否不相等
result = 5 != 5                #False
result = 4 != 8                #True
result = 'friend' != 'friend'  #False
result = 'work' != 'life'      #True
# - is 比较两个对象是否是同一个对象,比较的是对象的id
result = 1 is True             #False
# - is not 比较两个对象是否不是同一个对象,比较的是对象的id
result = 1 is not True         #True

5. 逻辑运算符

5.1 not 逻辑非

  • not可以对符号右侧的值进行非运算。对于布尔值,非运算会对其进行取反操作,True变False,False变True
# not 逻辑非
result = 1          #True
result = not 'a'    #False
result = None       #False,None为空串,值为False
result = not result #True

5.2 and 逻辑与

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

5.3 or 逻辑或

  • 或运算两个值中只要有一个True,就会返回True
  • 或运算是找True的
# or 逻辑或,找True
result = True or True      #True
result = True or False     #True
result = False or True     #True
result = False or False    #False
True or print('Hi')        #空
False or print('Hi')       #Hi

5.4 非布尔值的与或运算

  • 当我们对非布尔值进行与或运算时,Python会将其当做布尔值运算,最终会返回原值
  • 非布尔值与运算的规则:
  • 与运算是找False的,如果第一个值是False,则不看第二个值,直接返回第一个值,否则返回第二个值
  • 非布尔值或运算的规则:
  • 或运算是找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.条件运算符

python的且运算符 python中的运算符_条件运算符


条件运算符在执行时,会先对条件表达式进行求值判断

如果判断结果为True,则执行语句1,并返回执行结果

如果判断结果为False,则执行语句2,并返回执行结果

语法: 语句1 if 条件表达式 else 语句2

#条件运算符
a = 8
b = 6
bigger_num = a if a>b else b       #8

7.运算符的优先级

可以参考运算符优先级参考表,由上往下优先级依次递增。

最后的小问题:

  • 现在有a b c三个变量,三个变量中分别保存有三个数值,请通过条件运算符获取三个值中的最大值?
#通过条件运算符获取三个值中的最大值
bigger_num = a if a>b else b                        #先找出a、b间较大的数
biggest_num = bigger_num if bigger_num>c else c     #再与c比较