Python学习-必知的表达式运算符小知识

学习Python,我们必须掌握基础的表达式与运算符这类的小知识,虽然简单但是真的基础。

表达式是我们书写Python语句的基础,在Python中,单个常量或变量可以看作最简单的表达式,使用除赋值运算符之外的其他任意运算符和函数调用连接的式子也属于表达式。
运算符优先级遵循的规则为:算术运算符优先级最高,其次是位运算符、成员测试运算符、关系运算符、逻辑运算符等,算术运算符遵循“先乘除,后加减”的基本运算原则。 这个大家一定要注意,
虽然Python运算符有一-套严格的优先级规则,但是强烈建议在编写复杂表达式时使用圆括号来明确说明其中的逻辑来提高代码可读性。尤其是初学者,写的代码不多,代码写的可能很烂,过一段时间再看你可能就看不动了,个人建议加好注释

下面讲一下运算符

  1. +运算符 :加法符号,除了算术加法外,列表、元组、字符串合并与连接也可以实现,还有正号的意思
    比如你可以这样:
>>>[1,2,3,]+[4,5,6]        #连接两个列表
[1,2,3,4,5,6]
>>>(1,2,3)+(4,)            #连接两个元组
(1,2,3,4)
>>>'abc'+'1234'            #连接两个字符串
'abcd1234'
  1. *运算符 : 除了表示算术乘法,还可用于列表、元组、字符串与整数的乘
    法,表示序列元素的重复,生成新的序列对象。
>>> [1,2,3] *3
[1, 2,3,1,2,3,1,2, 3]
>>>(1,2, 3) * 3
(1,2,3,1,2,3,1,2, 3)
>>> 'abc'* 3
'abcabcabc'
  1. 运算符 / 和 // 在Python中分别表示算术除法和算术求整商(floor division)
>>>3/2
#数学意义上的除法
1.5
>>>15//4
#如果两个操作数都是整数。结果为整数
3
>>> 15.0//4
#如果操作数中有实数。结果为实数形式的整数值
3.0
>>> -15/14 
#向下取整,即取比他小的最大整数
-4
  1. %运算符可以用于整数或实数的求余数运算,还可以用于字符串格式化
>>> 789% 23
#余数
>>>123.45% 3.2
#可以对实数进行余数运算。但要注意精度问题
1.84999999999
>>> '%c, %d'%(65, 65) #把65分 别格式化为字符和整数
'A 65'
  1. **运算符表示幂乘
>>>3**2
#3的2次方,等价于pow(3, 2)
9
>>>90.5
#9的0.5次方。平方根
3.0
>>> (-9)**0.5
#可以计算负数的平方根
(1.8369701987210297e-16+3j)
  1. Python关系运算符可以连用,注意:操作数之间必须可比较大小。
>>>1<3<5
#等价于 1<3 and 3<5
True
>>> math.isclose(0.4-0.1, 0.3)
True
>>> 'Hello' > 'world'
#比较字符串大小
False
>>>[1,2,3]<[1,2,4]
#比较列表大小
True
>>> {1,2,3}<{1,2,3,4}
#测试是否子集,成立代表前面的是后面的真子集,是包含关系
True
>>>{1,2,3)=={3,2,1}
#测试两个集合是否相等
True
  1. 成员测试运算符 in 用于成员测试,即测试一个个对象是否为另一个对象的元素。
>>>3 in [1,23]
#测试3是否存在于列表[1,2, 3]中
True
>>> 5 in range(1, 101)
#range()是用来生成指定范围数字的内置函数
True
>>> 'abc' in "abedefg"
#子字符串测试
True
  1. 集合的交集、并集、对称差集等运算借助于位运算符来实现,而差集则使用减号运算符实现。
    注意:集合不允许重复元素
>>>{1,2,3} | {3,4,5}
 #并集,自动去除重复元素 
 {1,2,3,4,5}
>>>{1,2,3}&{3,4,5}
 #交集 
 {3}
 >>>{1,2,3}^{3,4,5}
 #对称差集
 {1,2,4, 5}
 >>> {1, 2, 3,4} - {34, 5}
#差集
 {1,2}

逻辑运算符

  • 逻辑运算符and、or、not常用来连接条件表达式构成更加复杂的条件表达式,并且and和or具有惰性求值或逻辑短路的特点,当连接多个表达式时只计算必须要计算的值
  • 另外要注意的是,运算符and和or并不一定会返回True或False ,而是得到最后一个被计算的表达式的值 ,但是运算符not一定会返回True或False
>>> 3>5 and a>3
#注意,此时并没有定文变量a
False
>>> 3>5 or a>3
#3>5的值为False,所以需要it算后面表达式
NameError: name 'a' is not defined,
>>> 3< 5 or a>3
#3<5的值为True.不需要计算后面表达式
True
>>>3 and 5
#最后一个计算的表达式的值作为整个表达式的值
5
>>>5 and 3
3
>>> 3 and 5>2
2   #注意运算符优先级
>>3 not in[1,2,3]
#逻辑非运算not
False
>>>3 is not 5
#not的计算结果只能是True或False之一
True

特别注意
Python不支持**++和- -**运算符。

>>>1=3
>>> ++i 
#正正得正
3
>>> +(+3)
#与 ++i等价
>>> i++
#Python不支持++运算符。语法错误
SyntaxError: invalld syntax
>>> --1
#负负得正,等价于-(-1)
>>> ---i
#等价于-(-(-i))
-3
>>> i--
#Python不支持--运算符。语法销误
SyntaxError: invalld syntax

好了,基本的运算符差不多都讲到了,这一片就介绍到这里了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章