python学习第三天——运算符和表达式
本来不准备单独拉一篇博客记录,但是学完了发现python的运算符和表达式与java相比有不少区别,以下做关键记录
算术运算
- + (加)
意义:将两对象相加
注意:数字和字符串是不允许相加的,这种情况在java中,数字会被转为字符串后相加,在python中报错
- - (减)
- * (乘)
意义:两个数相乘,或者将一个字符串重复若干次
注意: 'la' * 3 得到 'lalala'.
- ** (乘方)
意义:返回 x 的 y 次幂,这在java中是不存在的
实例:3 ** 4 得到 81
- / (除)
意义:x 除以 y
注意:整数相除并不像java一样得出整数
实例:13 / 3 =4.333333333333333,12/3=4.0
- // (除且取整)
意义:x 除以 y 并返回小于商的最大整数,注意,如果操作数之一为浮点数,则返回值必为浮点数。
实例:13 // 3 = 4 ; -13 // 3 = -5 ; 9//1.81 = 4.0
- % (取模)
意义:返回作除法之后的余数
13 % 3 得到 1. -25.5 % 2.25 得到 1.5
比较运算
- < (小于)
注意:比较运动算符返回 True 或 False(True和False的首字母都是大写)
比较还可以任意链接: 3 < 5 < 7 得到 True
- > (大于)
注意:如果两个操作数都是数字,则首先要做的是将它们转换为相同的类型。否则总是返回 False
- <= (小于或等于) >= (大于或等于)
- == (等于)
意义:比较两个对象是否相等
实例:数字等于 x = 2; y = 2; x == y 返回 True ;字符串等于 x = 'str'; y = 'stR'; x == y 返回 False ;x = 'str'; y = 'str'; x == y 返回 True
- != (不等于)
bool运算***
这里首先要指明python中的True和False,和java的 大 ——不——相——同
1、python的True和False,现在是keyword,不可赋值,并注意大小写
2、True和False分别对应数字1和0,可以打印下True==1,True<0.1,False==0,False>0.1;True+False+20的结果
3、布尔表达式的值,按官方解释,以下会被认为是false
(1)None;False
(2)任何为0的数字类型,如:0,0.0,0j;
(3)任何空序列和空字典,如:'',(),[];
(4)用户定义的类实例,如果类定义了__bool__()或者__len__()方法,并且该方法返回0或者布尔值False。
- not (非)
-
and (与)短路运算
-
or (或)短路运算
成员运算和身份运算***
这个是比较新鲜的东西
in 和 not in是成员运算符,返回"元素"是否在一个对象中,这个对象可以是字符串,列表或元组
实例:print('a' in 'aa') 结果为True
is 和 is not 是身份运算符,用于比较两个对象的存储单元
实例:x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False;x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False
划笔记:id()函数用于获取对象的内存地址;is 用于判断两个变量引用对象是否为同一个, == 用于判断引用变量的值是否相等
比较:这点和java的equals()和==相反,java中equals比较值内容,==比较对象地址
位运算比较复杂一点,我准备单独开一篇讲,请移步另外一篇:python学习特辑-二进制和位运算篇