python逻辑运算符两侧运算对象的数据类型_Python基础-对象/运算符(2)

对象:

py是一门面向对象的语言,在程序运行时,所有的数据都是存储在内存当中再去运行的。对象就是内存中专门用来存储数据的一块区域。对象实际上就是一个容器,专门用来存储数据。数值,字符串,布尔值,None都是对象。对象分为可变对象和不可变对象,可变仅针对值。

对象结构:

每个对象都要保存三种数据.id(标识):

id用来标识对象的唯一性,每个对象都有唯一的id。可以通过id()函数查看对象的id,py中id就是对象的内存地址,对象一旦创建,其id值永远不会改变。

type(类型)

用来标识当前对象所属的类型,类型决定了对象拥有哪些功能,可以通过type()函数查看对象的类型。py是一门强类型语言,对象一旦创建,类型不可以修改。

-value(值)

值就是对象中存储的具体的数据,可变对象的值可以改变。

变量和对象区别

对象并没有直接存储在变量中,变量更像对象的别名,变量中存储的是对象id也就是内存地址。当我们使用变量时,实际上就是通过对象id查找对象。

变量中保存的对象,只有在为变量重新赋值时才会改变。变量和变量之间是相互独立的,修改一个变量不会影响另一个变量。

注意:

当通过变量给变量赋值时,其所存储的对象id时一样的。也可以说,这两个变量指向同一个对象。

a=6

b=a

print(id(a))

print(id(b))

运算符:

运算符可以对一个值或者多个值进行运算或者操作

运算符分类:算数运算符

赋值运算符

比较运算符(关系运算符)

逻辑运算符

条件运算符(三元运算符)

算数运算符+:加法运算符(如果是两个字符串则会进行拼串)

-:减法运算符

*:乘法运算符(如果字符串和数字相乘则会进行字符串复制操作)

/:除法运算符,结果总会返回一个浮点

//:整除,只会保留计算后整数位,返回一个整型

**:幂运算,求一个值的几次幂

%:取模,求两个数相除的余数

注意:True与整数和浮点数运算,True等价于1。False等价于0。

在除法或者整除时,除数不能为0

赋值运算符

关系运算符

关系运算符用来比较两个值之间的关系,总会返回一个布尔值,关系成立为True,不成立为False。

=>

注意:两个字符整数或者浮点数参照整数进行比较,字符也是可以比较的,参照unicode码。 字符和整数/浮点不能进行比较,字符和布尔也不能比较。整数/浮点和布尔可以进行比较。

介绍两个py特有的。is :比较两个对象是否是同一个对象,比较的是对象的id

is not 比较两个对象是否不是同一个对象,比较的是对象的id

逻辑运算符(与或非)

主要来做一些逻辑判断。not 逻辑非:

not对符号右侧的值进行非运算,对于布尔值进行取反,True->False。对于非布尔值,非运算会将其转换为布尔值,然后在取反。

and 逻辑与:

and可以对符号两侧的值进行与运算, 只有两侧的值为True时才会返回True。 当左侧的值为False时,则不在看右侧

or 逻辑或:

or可以对符号两侧的值进行或运算,只要有一侧的值为True就会返回True。同样,当左侧值为True时,不在看右侧。

==注意:== 逻辑运算符返回的是其能到达最远处的值,而不是像java一样只返回布尔值。==逻辑判断时,不局限两侧值的类型,因为每一种类型都可以当布尔值判断,只是返回结果不是布尔类型,而是其原本类型==

and比or优先级高print( '' or 'b') # b print( 1 and 2.0) #2.0 print(0 and 2) #0 #证明and优先级高 print( 0 or 2 and 3) # 3

条件运算符(三元运算符)

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

条件运算符在执行时,先对条件表达式进行求值判断,结果为True返回语句1,False返回语句2.

a=2

b=3

c=a if a>b else b

print(c) #3

print(a)if a>b else print(b) #3

注意:

1<2<3 等效于 1<2 and 2<3

你可能感兴趣的:(python逻辑运算符两侧运算对象的数据类型_Python基础-对象/运算符(2))