1、算数运算符
假定一下变量:a = 10, b = 20
运算符 描述 实例 + 加,两个对象相加 a + b 输出结果 30 - 减,得到负数或是一个数减去另一个数 a - b 输出结果 -10 * 乘,两个数相乘或是返回一个被重复若干次的字符串 a * b 输出结果 200 ** 幂,返回x的y次幂 a ** b 为10的20次方 / 除,x除以y b / a 输出结果 2 // 取整除,返回商的整数部分 9 // 2输出结果 4,9.0 // 2.0 输出结果4.0 % 取模,返回除法的余数 b % a 输出结果 0
+ - * ** / // %
print ( 10 + 3 )
print ( 10 - 3 )
print ( 10 * 3 )
print ( 10 ** 3 )
print ( 10 / 3 )
print ( 10 // 3 )
print ( 10 % 3 )
print ( 10 * 3.333 )
其他类型的数据也可以使用 + * 运算,但是效率很低基本不用
print ( [ 1 , 2 , 3 ] + [ 3 , 4 , 5 ] )
print ( [ 1 , 2 , 3 ] * 3 )
2、比较运算符
假定一下变量:a = 10, b = 20
运算符 描述 实例 == 等于,比较对象是否相等 (a == b) 返回 False != 不等于,比较两个对象是否不想等 (a != b) 返回 True > 大于,比较 > 左边的值是否大于右边的值 (a > b) 返回 False >= 大于等于,比较 >= 左边的值是否大于或等于右边的值 (a >= b) 返回 False < 小于,比较 < 左边的值是否小于右边的值 (a < b) 返回 True <= 小于等于,比较 <= 左边的值是否小于或等于右边的值 (a <= b) 返回 True
== != > < >= <=
print ( 10 == 10 )
print ( 10 > 10 )
print ( 10 >= 10 )
print ( "abc" != "ddd" )
print ( 10 > 3.1 )
print ( 10 > "12" )
print ( "a12" == "a12" )
print ( [ 1 , 2 , 3 ] == [ 1 , 2 , 3 ] )
字符串通常用 len ( ) 计算长度去比较
"abc"
"az"
print ( "abc" > "az" )
l1= [ 111 , 222 , 333 ]
l2= [ 111 , "aaa" ]
print ( l1 > l2)
print ( { "k1" : 111 , "k2" : 222 } == { "k2" : 222 , "k1" : 111 } )
print ( { "k1" : 111 , "k2" : 222 } == { "k2" : 111 , "k1" : 222 } )
3、赋值运算符
运算符 描述 实例 = 简单的赋值运算符 c = a + b 将 a + b 的运算结果赋值为 c += 加法赋值运算符 c += a 等效于 c = c + a -= 减法赋值运算符 c -= a 等效于 c = c - a *= 乘法赋值运算符 c *= a 等效于 c = c * a /= 除法赋值运算符 c /= a 等效于 c = c / a %= 取模赋值运算符 c %= a 等效于 c = c % a **= 幂赋值运算符 c **= a 等效于 c = c * * a //= 取整除赋值运算符 c //= a 等效于 c = c // a
3.1、增量赋值
age += 2
age -= 2
age **= 2
print ( age)
3.2、链式赋值
x = 10
y = x
z = y
print ( id ( x) )
print ( id ( y) )
print ( id ( z) )
x = y = z = 10
3.3、交叉赋值
x = 10
y = 20
temp = x
x = y
y = temp
x, y = y, x
print ( x)
print ( y)
3.4、解压赋值
salary = [ 1.1 , 2.2 , 3.3 , 4.4 , 5.5 ]
mon1 = salary[ 0 ]
mon2 = salary[ 1 ]
mon3 = salary[ 2 ]
mon4 = salary[ 3 ]
mon5 = salary[ 4 ]
mon1, mon2, mon3, mon4, mon5 = salary
print ( mon1, mon2, mon3, mon4, mon5)
变量名多一个不行少一个不行,必须与值一一对应
mon1, mon2, mon3, mon4 = salary
mon1, mon2, mon3, mon4, mon5, mon6 = salary
mon1, mon2, mon3, * _ = salary
print ( mon1, mon2, mon3)
print ( _)
mon1, mon2, * _, mon5 = salary
print ( mon1)
print ( mon2)
print ( mon5)
dic= { "k1" : 111 , "k2" : 222 , 'K3' : 333 }
x, y, z = dic
print ( x, y, z)
x, * _ = dic
print ( x)
print ( _)
4、逻辑运算符
4.1、not
not :代表把紧跟其后的条件结果取反
print ( not 10 > 3 )
4.2、and
and :连接左右两个条件,左右两个条件必须同时成立,最终结果才为True
print ( True and 1 > 0 and "aaa" == "aaa" )
print ( True and 1 < 0 and "aaa" == "aaa" )
4.3、or
or :连接左右两个条件,左右两个条件但凡是有一个成立,最终结果就为True
print ( True or 1 > 0 or "aaa" == "aaa" )
print ( False or 1 < 0 or "aaa" != "aaa" )
4.4、短路运算
又称偷懒原则,即
and 连接多个条件时,只要第一个条件遇到结果为False ,则最终结果为False
or 连接多个条件时,只要第一个条件遇到结果为True ,则最终结果为True
print ( 1 and 3 or 4 )
>> > 1 or 3
1
>> > 1 and 3
3
>> > 0 and 2 and 1
0
>> > 0 and 2 or 1
1
>> > 0 and 2 or 1 or 4
1
>> > 0 or False and 1
False
4.5、优先级
优先级: not > and > or ,也可以自己用( ) 来规定优先级
3 > 4 and 4 > 3 or not 1 == 3 and 'x' == 'x' or 3 > 3
res = ( 3 > 4 and 4 > 3 ) or ( not 1 == 3 and 'x' == 'x' ) or 3 > 3
print ( res)
5、成员运算符
in / not in
判断子字符串是否在一个大字符串里面