Python语言中,一切皆对象,而每个对象都属于某个数据类型。Python的数据类型包括内置的数据类型、模块中定义的数据类型和用户自定义的类型
通过字面量或调用对象的构造方法,可以创建数据类型的实例对象,然后使用运算符、内置函数、系统函数和对象方法进行运算操作
Python包括4种内置的数据类型:
序列数据类型表示若干有序数据。Python序列数据类型分为:不可变序列数据类型和可变序列数据类型
不可变序列数据类型包括以下三种:
可变序列数据类型包括
集合数据类型表示若干数据的集合,数据项目没有顺序,且不重复。Python集合数据类型包括以下两种。
字典数据类型用于表示键/值对字典。Python内置的字典数据类型为
dict
整数数据类型(int)表示整数的数据类型。与其他计算机语言有精度限制不同,Python的整数位数可以为任意长度位数(只受限制于计算机内存)。整型对象是不可变对象。
数字字符串(前面可以带括号)即整型字面量。Python解释器自动创建
int
型对象实例。数字字符串通常将解释为十进制(基数10)数制。可以用前缀表示其他进制的整数,跟在前缀后面的数字必须适合于数制
int是Python内置的数据类型。可以创建int类型的对象实例,其基本形式为
int(x=0) #创建int对象(十进制)
int(x,base=10) #创建int对象,指定进制为base(2~36之间)
通过创建int对象,可以把数值或任何符合格式的字符串或其他对象转换为int对象,注意,如果对象x不能转换为整型,则导致
TypeError
;如果对象x转换失败,则导致ValueError
int对象
i
包含的主要方法如下:
i.bit_length()
返回i的二进制位数,不包括字符
>>> i=-10
>>> bin(i)
'-0b1010'
>>> i.bit_length()
4
>>>
整数对象支持关系运算、算术运算,位运算符、内置函数、math模块中的数学运算函数以及int对象方法
浮点型(float)是表示实数的数据类型。与其他计算机语言的双精度(double)和单精度对应。Python浮点类型的精度与系统相关
浮点类型字面量可以为带小数点的数字字符串,或用科学计数器表示的数字字符串(前面可以带负号—),即浮点型字面量。Python解释器会自动创建float型对象实例
float是python的内置数据类型,可以创建float类型对象实例,基本格式:
float(x)
通过创建float对象,可以把数值或任何格式的字符串转换为float对象。
注意,如果对象x不能转换为float对象,将导致TypeError
;如果对象x转换失败,将导致ValueError
。特殊字符串Infinity
、Infinity
和NaN
,分别用于表示正无穷大,负无穷大和非数值
当数值字符串中包含虚部
(j或J)
时,即复数字面量。Python解释器自动创建complex类型对象实例
complex是Python的内置数据类型,可以创建complex类型的对象实例,基本形式:
complex(real[,imag]) #创建complex对象(虚部可选)
bool数据类型包含两个值:True (真) 或 False (假)
>>> True,False
(True, False)
>>> type(True)
<class 'bool'>
>>> type(False)
<class 'bool'>
>>>
可以创建bool类型的对象实例,其基本形式为:
bool(x)
,通过创建bool对象,可以把数值或任何符合格式的字符串或其他对象转换为bool对象
>>> bool(0)
False
>>> bool(1)
True
>>> bool('mochu')
True
逻辑运算符,即布尔运算符。用于检测两个以上的条件情况,即多个bool值的逻辑运算,其结果为bool类型值。
逻辑运算符除逻辑非(not)是一元运算符,其余均是二元运算符,用于将操作数进行逻辑运算符,用于将操作数进行逻辑运算,结果为True或False
字符串(str)是一个有序的字符集合。Python中没有独立的字符数据类型,字符即长度为1的字符串。
Python内置数据类型str,用于字符串处理。str对象的值为字符系列。str对象(字符串)是不可变对象
使用单引号或双引号括起来的内容,是字符串字面量,Python解释器自动创建str型对象实例。Python字符串字面量可以使用以下4种方式定义。
' '
,包含在单引号中的字符串,其中可以包含双引号。" "
,包含在双引号中的字符串,其中可以包含单引号。''' ''''
,包含在三单引号中的字符串,可以跨行。""" """
,包含在三双引号中的字符,可以跨行。Python3字符默认为
16位Unicode
编码,ASCII码是Unicode编码的子集,使用u
或U
的字符串称为Unicode
字符串,Python3默认认为Unicode字符串。
使用内置函数
ord()
可以把字符转换为对应的Unicode码;使用内置函数chr()
可以把十进制数转换为对应字符
>>> ord('A')
65
>>> ord('末')
26411
>>> chr(26411)
'末'
>>>
特殊符号(不可打印字符)可以使用转义序列表示。转义序列以反斜杆开始,紧跟一个字母,如
\n
(新行)和\t
(制表符)。如果字符串中希望包含反斜杆,则它前面必须还有另一个反斜杠
str是Python的内置数据类型,创建str类型的对象实例的基本形式为:
str(object='') #创建str对象,默认为空字符串
通过创建str对象,可以把任意对象转换为str对象,返回object.__str__()
,如果对象没有定义__str__()
,则返回repr(object)
使用
str
对象提供的方法,可以实现常用的字符串处理功能,str对象是不可变对象
,故调用方法返回的字符串是新创建的对象。str对象的方法有两种调用方式:字符串对象的方法和str类方法
>>> name='mochu'
>>> name.upper()
'MOCHU'
>>>
>>> str.upper(name)
'MOCHU'
>>>
使用内置函数
str()
可以把数值转换为字符串。实际上,使用print(123)输出数值时。将自动调用str(123)
函数,把123转换为字符串,然后输出。
Python还提供了另一个内置函数
repr()
,函数repr()
返回一个对象的更精准的字符表形式。大多数情况下,内置函数repr()
和str()
的结果一致
通过字符串格式化,可以输出特定格式的字符串。Python字符串格式化包括以下几种方式:
字符串.format(值1,值2,....)
str.format(格式化字符串1.值1,值2,.....)
format(值,格式化字符串)
格式化字符串%(值1,值2,...)#兼容Python2格式
>>> "my name is {0}, my grade is {1}".format('mochu7',7)
'my name is mochu7, my grade is 7'
>>> str.format("my name is {0},my grade is {1}",'mochu7',7)
'my name is mochu7,my grade is 7'
>>> format(7.7,"0.5f")
'7.70000'
>>> "my name is %s,my grade is %s"%('mochu7',7)
'my name is mochu7,my grade is 7'
>>>
关系和测试运算符是二元运算符。关系运算符用于将两个操作数的大小进行比较,若关系成立,则比较结果为
True
,否则为False
原则上,关系比较运算符应该是两个相同类型的对象之间的比较,但是不同类型的对象也允许比较,会导致错误,但数值类型(包括布尔型,True会自动转化为1,False自动转换为0)
Python提供了丰富的算术运算符,用于提供包括四则运算的各种算术运算运算
位运算用于按二进制位进行逻辑运算,操作数必须为整数
int、float和complex对象可以混合运算。如果表达式中包含complex对象,则其他对象自动转换(隐式转换)为complex对象,结果为complex对象;如果表达式中包含float对象,则其他对象自动转换(隐式转换)为float对象,结果为float对象
显示转换
又称为强制转换
,使用target-type(value)
将表达式强制转换为所需的数据类型。如果未定义相应的转换运算符,则强制转换为失败。显示转换实际上使用目标类型的构造函数创建其对象。
int()
,float()
,bool(x)
,str(x)
,分别把对象转换为整数、浮点数、布尔值和字符串