(二)Python内置对象、运算符和表达式

一、Python的内置对象

python的内置对象是指python语言自带的对象,在python中一切皆为对象,所以都可以按照面向对象的方法来操作这些对象。除了内置对象之外,也可以自行编写一些操作对象,比如numpy库中的array数组对象就不是python内置对象。

python内置对象有

  1. 数字:整数int、实数float、复数complex;
  2. 字符串:用’ ‘、" "、’’’ ‘’'作为定界符的对象,三者没有区分都表示字符串;
  3. 字节串:bytes,用b引导,比如b’name’;
  4. 序列结构:字典dict{ },列表list[ ],元组 tuple( ),集合set{ };
  5. 布尔型:True,False;
  6. 空类型:NoneTpye ,比如None;
  7. 异常类型:ValueError,SyntaxError等等;
  8. 文件类型:打开文件,返回一个文件对象;
  9. 迭代对象:生成器对象、range对象、zip对象等等;
    10.编程单元:函数对象,类对象,模块对象。

二、Python内置对象摘要

1. 常量和变量

常量:不能改变的字面量,比如固定的一个数字4,列表[1, 3, 4]
变量:可以变化值和类型的量

Python采用基于值的内存管理模式,任何变量都是对字面常量的引用,或者存储的是字面常量的地址。

例如

In [28]: x = [1, 3, 4]                                                          

In [29]: y = x                                                                  

In [30]: y.pop()                                                                
Out[30]: 4

In [31]: x                                                                      
Out[31]: [1, 3]

In [32]: y                                                                      
Out[32]: [1, 3]

虽然在In[29]中把x赋值给y,但是修改了y的同时,x也修改了,这表明x和y指向的是同一个地址上的列表[1, 3, 4]

2. 数字类型

python支持复数及其运算,只需要按照数学中的复数的定义和运算规则来操作就行

In [1]: c = 4 + 3j                                                              

In [2]: type(c)                                                                 
Out[2]: complex

In [3]: d = 4 - 3j                                                              

In [4]: c + d                                                                   
Out[4]: (8+0j)

In [5]: type(c+d)                                                               
Out[5]: complex

In [6]: c*d                                                                     
Out[6]: (25+0j)

但是要注意,两个复数运算后依然是复数类型,虽然两个共轭复数的和是实数,在python中依然是复数类型。

3. 字符串和字节串

字符串str编码得到字节串bytes,字节串bytes解码得到字符串str

In [7]: q = 'name'                                                              

In [8]: p = b'name'                                                             

In [9]: type(q)                                                                 
Out[9]: str

In [10]: type(p)                                                                
Out[10]: bytes

In [11]: x = q.encode('utf-8')                                                  

In [12]: x                                                                      
Out[12]: b'name'

In [13]: x.decode()                                                             
Out[13]: 'name'

三、运算符和表达式

1. 算数运算符

主要为加+、减-、乘*、除/、整商 //、求余 %、幂 **
每种运算符作用于不同对象会有不同的效果。

2. 关系运算符

对于两个可以比较大小(序关系)的操作对象,可以用关系运算符得到一个关系表达式。
<、<=、 >、 >=、 ==、 !=
最后两个表示等于和不等于

3. 成员测试运算符 in

用于判断一个对象是否是一个对象的元素

In [14]: 3 in [1,2,3]                                                           
Out[14]: True

In [15]: 4 in ['1',3]                                                           
Out[15]: False

4. 同一性测试运算符 is

用于判断两个对象是否是同一个对象,即在内存中的地址是否相同

In [1]: x = [1,2,3]                                                             

In [2]: y = [1,2,3]                                                             

In [3]: x is y                                                                  
Out[3]: False

In [4]: z = x                                                                   

In [5]: z is x                                                                  
Out[5]: True

In [6]: a = 300                                                                 

In [7]: b = 300                                                                 

In [8]: a is b                                                                  
Out[8]: False

这里创建了两个列表和两个整数300,所以他们的地址不一样

In [9]: id(a)  #a的地址                                                                 
Out[9]: 4425498576

In [10]: id(b) #b的地址                                                                 
Out[10]: 4426555184

5. 位运算和集合运算符

按位与:&
按位或:|
按位异或:^
左移位:<<

一个数字a左移位一位,右侧补0,相当于原来数字乘以2;右移位一位,左侧补0,相当于原来数字除以2

同时这些运算符还兼有集合运算功能
求交集:&
求并集:|
求对称差:^
求差集:-

集合A和B的对称差是指属于A和B但是不属于A交B的元素的集合

6. 逻辑运算符

and or not

惰性求值\逻辑短路:
当连接多个表达式的值时只计算需要计算的表达式。
exp 1 and exp 2 等价于 exp1 if not exp1 else exp2

In [12]: 3<5 and 4>6                                                            
Out[12]: False

In [13]: 3<5 if not 3<5 else 4>6                                                
Out[13]: False

In [14]: 4>6                                                                    
Out[14]: False

7. 复合赋值运算符

在运算符后添加一个=,就可以获得如下效果
a += 1 等价于a = a + 1
Python中没有 ++ - -运算符

你可能感兴趣的:(Python)