扩展后的赋值运算符
+=:对于x+= y , 即对应于x = x+y 。
-=:对于x -= y ,即对应于x=x-y 。
*=:对于x *= y ,即对应于x=x* y 。
/=:对于x /= y ,即对应于x = x | y。
//=:对于x//=y ,即对应于x = x//y 。
%=:对于x %=y ,即对应于x=x%y 。
**=:对于x **= y ,即对应于x=x**y。
&=:对于x &=y ,即对应于x = x & y。
|=:对于x |= y,即对应于x = x I y 。
^=:对于x^= y , 即对应于x= x^y 。
<<=:对于x<<=y ,即对应于x = x<<y 。
>>=:对于x >>= y,即对应于x=x>>y 。
计算机中推荐使用扩展后的运算符。
索引运算符
索引运算符就是方括号,在方括号中既可使用单个索引值,也可使用索引范围,还可指定步长。
a = 'abcdefghijklmn'
# 获取索引2到索引8的子串(8是第8个字符),步长为3
print(a[2:8:3]) # 输出cf
比较运算符与bool类型
Python中真用True代表,假用False代表。
比较运算符用于判断两个值的大小,这两个值可以是变量、常量、表达式,结果是bool值。
>、>=、<、<=、
==:如果运算符前面的值等于后面的值,则返回True;否则返回False 。
!=:不等于, 如果运算符前面的值不等于后面的值,则返回True;否则返回False 。
is:判断两个变量所引用的对象是否相同,如果相同则返回True 。
is not:判断两个变量所引用的对象是否不相同,如果不相同则返回True。
python中bool值True也可以被当成整数1使用,False也可被当成整数0使用,完全可以参与各种算术运算。
is和==的区别:
==只比较两个变量的值,但is 要求两个变量引用同一个对象。
import time
# 获取当前时间
a = time.gmtime()
b = time.gmtime()
print(a == b) # a和b两个时间相等,输出True
print(a is b) # a和b不是同一个对象,输出False
分析原因:a 、b 两个变量都代表当前系统时间,因此a 、b 两个变的时间值是相等的,故程序使用“==”判断返回True 。但由于a 、b 两个变量分别引用不同的对象(每次调用gmtime( )函数都返回不同的对象),因此a is b 返回False 。
Python 提供了一个全局的id()函数来判断变量所引用的对象的内存地址,如果两个对 象所在的内存地址相同,则说明这两个对象其实是同一个对象。is判断其实就是要求通过id()函数计算两个对象时返回相同的地址。
print(id(a))
print(id(b))