python的这些细节知识点你注意了吗?--内置类

目录

  • 内置类的可变类和不可变类
  • bool()创建bool类型
  • 整形类构造函数的第二个参数(控制转换的进制)
  • 6e2 和 2. 都是浮点数
  • python序列类型(list,tuple,str)
  • 集合set的两个特点
  • {}代表一个空的字典而非集合

内置类的可变类和不可变类

下面内容基于python3.6.8,python是一门面向对象的语言,类class是所有类型的基础,python中的类型有int,float,str,bool,list,set,tuple,dict,frozenset,需要注意的是,这些类被分为可变类和不可变类。
如果类的每一个对象在实例化时有一个固定的值,并且之后也不可以改变(就像int类型创建出来之后,它的值不可变,在进行赋值运算a = a + 1时,是创建了新的对象并把它赋值给a,值是a+1),它们就是不可变类,有int,float,str,bool,tuple,frozenset。
与之对应的是可变类,list,set,dict。

bool()创建bool类型

bool类用于处理逻辑布尔值,该类表示的实例只有True和False两个值。
python允许采用bool(foo)的语法用非布尔值foo创建一个布尔类型。就数字而言,0是False,其他皆为True。
对于序列(list,str,tuple)和其他容器类型,如果是空为False,非空为True。
这种方式的重要应用可以让非布尔值变为控制结构的条件。

整形类构造函数的第二个参数(控制转换的进制)

python中的整形不像java和c++中的(int,short,long)一样,它表示任意长度的整形,python会根据数值大小自动选择内部的表示方式。
构造函数int()默认返回0,它的参数如果是int或者float,就会选择数字的整数部分,int(12.3)是12,int(-9.8)是-9
它的参数也可以是字符串,但是必须是内容为整形的字符串,如下:
python的这些细节知识点你注意了吗?--内置类
当它的第一个参数为字符串时,它的第二个参数可以设置转换的进制,如下:
python的这些细节知识点你注意了吗?--内置类
它的第一个参数必须为字符串,才能写第二个参数(2,8,10,16),否则报错。

6e2 和 2. 都是浮点数

2.是float的一种简写,相当于浮点数2.0。e在python中表示科学计数法,下面是使用例子:
6e23就是6的23次方,e后面的是10的多少次方,可以是负数,表示开根:
python的这些细节知识点你注意了吗?--内置类

6e2返回的是浮点数,6*10**2返回的是整数:
python的这些细节知识点你注意了吗?--内置类
最后float()默认返回0.0:
python的这些细节知识点你注意了吗?--内置类

python序列类型(list,tuple,str)

list,tuple,str是python中的序列类型,代表许多值的集合,集合中值的顺序很重要。
list类是最常见的,它可以存储任意对象包括None,在python中它是极其重要的容器,[]是一个空列表。
list()构造器可以接收任何可迭代的参数(注意参数的数量最多是一个):
python的这些细节知识点你注意了吗?--内置类
tuple类型是不可变的列表,()是一个空元组,在这里如果要表示只有一个元素的元组,你得写 (12,),如果你忽略了12后面的逗号,那么(12)只是一个数值表达式:
python的这些细节知识点你注意了吗?--内置类

python的str类,它是基于unicode国际字符集,字符串可以是单引号或者双引号。
python支持’’’ this is a string ‘’’ 或者“”“ this is a string too ”“”,这样的三重引号,它可以自动换行,可读性更高。

集合set的两个特点

python的set类是一个数学概念–集合,集合中没有重复的元素,这些元素没有内在联系(没有顺序)。
除此之外,python中集合的限制还有两个,其一:集合不保存有任何顺序的元素集,其二:只有不可变类型的实例才可以添加到集合中:
python的这些细节知识点你注意了吗?--内置类
frozenset是集合不可变形式。

{}代表一个空的字典而非集合

因为历史原因,{}代表一个空的字典而不是集合,集合可以由set()构造器创建。
首先,dict实例由一个个键值对构成,你可以将字典看作是集合的特殊形式,字典的键首先要满足集合的规则,所以键必须是不可变类型:
python的这些细节知识点你注意了吗?--内置类