Python的基本数据类型有3种:整数、浮点数、复数
2.1 数字类型
2.1.1 整数类型
整数类型共有4种进制表示:十进制、二进制、八进制和十六进制。默认为十进制,其它进制需要增加引导符号。
进制种类 | 引导符号 |
---|---|
十进制 | 无 |
二进制 | 0b或0B |
八进制 | 0o或0O |
十六进制 | 0x或0X |
整数类型理论上的取值范围是[- ∞,+∞],实际上的取值范围受限于运行Python程序的计算机内存大小。除极大数的运算外,一般认为整数类型没有取值范围限制。
pow(x,y)函数是Python语言的一个内置函数,用来计算xy,可以用pow函数来测试整数类型的取值范围。
2.1.2 浮点数类型
浮点数有两种表示方法:十进制表示和科学计数法表示,例如:0.0,4.3e-3。
Python浮点数的数值范围和小数精度受不同计算机系统的限制,可以用sys.float_info查看。
浮点数在超过15位数字计算种产生的误差与计算机内部采用二进制运算有关,使用浮点数无法进行极高精度的数学运算。
想要获得极高精度的浮点数计算结果可以采用两种方法:
1)用整数代替浮点数进行计算
2)使用decimal标准库
2.1.3 复数
Python语言中,复数的虚数部分通过后缀“J”或“j”来表示,例如:
12.3+4j -5.6+7J
复数类型中实数部分和虚数部分的数值都是浮点类型。
2.2 数字类型的操作
2.2.1 内置的数值运算操作符
Python提供了9个基本的数值运算操作符,这些操作符由Python解释器直接提供,不需要引用标准或第三方函数库,也叫做内置操作符。
内置操作符:+、-、*、/、//、%、-x、+x、x**y
2.2.2内置的数值运算函数
Python解释器提供了一些内置函数,在这些函数之中,有6个函数与数值运算相关:
函数 | 描述 |
---|---|
abs(x) | x的绝对值 |
divmod(x,y) | (x//y,x%y),输出为二元组形式(也称为元组类型) |
pow(x,y[,z]) | (xy)%z,[…]表示该参数可以省略,即pow(x,y),它与xy相同 |
round(x[,ndigits]) | 对x四舍五入,保留ndigits位小数。round(x)返回四舍五入的整数值 |
max(x1,x2,…,xn) | x1,x2,…,xn的最大值,n没有限定 |
min(x1,x2,…,xn) | x1,x2,…,xn的最小值,n没有限定 |
2.2.3 内置的数字类型转换函数
数值运算操作符可以隐式地转换输出结果的数字类型,此外通过内置的数字类型转换函数可以显式地在数字类型之间进行转换。
隐式转换的扩展关系:
整数 -> 浮点数 -> 复数
内置的数字类型转换函数:
函数 | 描述 |
---|---|
int(x) | 将x转换为整数,x可以是浮点数或字符串 |
float(x) | 将x转换为浮点数,x可以是整数或字符串 |
complex(re[,im] | 生成一个复数,实部为re,虚部为im,re可以是整数、浮点数或字符串。im可以是整数或浮点数但不能是字符串 |
2.3 字符串类型及其操作
2.3.1 字符串类型的表示
字符串是字符的序列表示,可以由一对单引号(’)、(")或三引号(’’’)构成。
单引号和双引号都可以表示单行字符串,两者作用相同。使用单引号时,双引号可以作为字符串的一部分;使用双引号时,单引号可以作为字符串的一部分。三引号可以表示单行或多行字符串。
例如:
单引号字符串:’单引号表示,可以使用“双引号”作为字符串的一部分‘
双引号字符串:“双引号表示,可以使用’单引号‘作为字符串的一部分”
三引号字符串:
‘’’ 三引号表示可以使用“双引号”
‘单引号’
也可以换行
‘’’
Python中的字符串以Unicode编码存储,因此,字符串中的英文字符和中文字符都算作1字符。
2.3.2 基本的字符串操作符
Python提供了5个字符串的基本操作符,如图表
操作符 | 描述 |
---|---|
x+y | 连接两个字符串x与y |
xn或nx | 复制n次字符串 |
x in s | 如果x是s的子串,返回True,否则返回False |
str[i] | 索引,返回第i个字符 |
str[N:M] | 切片,返回索引第N到第M的子串,其中不包含M |
2.3.3 内置的字符串处理函数
函数 | 描述 |
---|---|
len(x) | 返回字符串x的长度,也可返回其他组合数据类型元素个数 |
str(x) | 返回任意类型x所对应的字符串形式 |
char(x) | 返回Unicode编码x对应的单字符 |
ord(x) | 返回单字符表示的Unicode编码 |
hex(x) | 返回整数x对应的十六进制数的小写形式字符串 |
oct(x) | 返回整数x对应的八进制数的小写形式字符串 |
2.3.4 内置的字符串处理方法
字符串类型共包含43个内置方法,介绍16个常用的方法:
方法 | 描述 |
---|---|
str.lower() | 返回字符串str的副本,全部字符小写 |
str.upper() | 返回字符串str的副本,全部字符大写 |
str.islower() | 当str所有字符都是小写时,返回True,否则返回False |
str.isprintable() | 当str所有字符都是可打印的,返回True,否则返回False |
str.isnumeric() | 当str所有字符都是数字时,返回True,否则返回False |
str.isspace() | 当str所有字符都是空格,返回True,否则返回False |
str.endswith(suffix[,start[,end]]) | str[start:end]以suffix结尾返回True,否则返回False |
str.startswith(prefix[,start[,end]]) | str[start:end]以prefix开始返回True,否则返回False |
str.split(sep=None,maxsplit=-1) | 返回一个列表,由str根据sep被分隔的部分构成 |
str.count(sub[,start[,end]]) | 返回str[,start[,end]]中sub子串出现的次数 |
str.replace(old,new[,count]) | 返回字符串str的副本,所有old子串被替换为new,如果count给出,则前count次old出现被替换 |
str.center(width[,fillchar]) | 字符串居中函数 |
str.strip([chars]) | 返回字符串str的副本,在其左侧和右侧去掉chars中列出的字符 |
str.zfill(width) | 返回字符串str的副本,长度为width,不足部分在左侧添0 |
str.format() | 返回字符串str的一种排版格式 |
str.join(iterable) | 返回一个新字符串,由组合数据类型iterable变量的每个元素组成,元素间用str分隔 |
2.4 字符串类型的格式化
字符串通过format()方法进行格式化处理
2.4.1 format()方法的基本使用
字符串format()方法的基本使用格式如下:
<模板字符串>.format(<逗号分隔的参数>)
模板字符串由一系列槽({})组成,用来控制修改字符串中嵌入值出现的位置,其基本思想是将format()方法中逗号分隔的参数按照序号关系替换到模板字符串的槽中。如果大括号没有序号,则按照出现的顺序替换,参数从0开始编号。
format方法可以非常方便地连接不同类型的变量或内容。
2.4.2 format()方法的格式控制
format()方法中模板字符串的槽除了包括参数序号,还可以包括格式控制信息。此时,槽的内部样式如下:
{<参数序号>:<格式控制标记>}
格式控制标记用来控制参数显示时的格式,格式内容如图所示:
: | <填充> | <对齐> | <宽度> | <,> | <,精度> | <类型> |
---|---|---|---|---|---|---|
引导符号 | 用于填充的单个字符 | < 左对齐 > 右对齐 ^居中对齐 | 槽的设定输出宽度 | 数字的千位分隔符 适用于整数和浮点数 | 浮点数小数部分的精度或字符串的最大输出长度 | 整数类型b,c,d,o,x,X 浮点数类型e,E,f,% |
格式控制标记包括<填充>、<对齐>、<宽度>、<,>、<精度>、<类型>6个字段,这些字段都是可选的,可以组合使用。
<宽度>、<对齐>和<填充>是3个相关字段。