数据类型
一、数值型
1.整值型包括int(整型)、float(浮点型)和complex(复数型)等。
(1)整型
① 整数型可以表示成十进制、八进制、十六进制和二进制形式。
几种整型常量的运算实例如下:
10+2 # 2 0O10+2 #10 0X20+2 #18 0B1101+100 #113
② Python支持在数字之间使用下画线来分割以提高数字的可读性,类似于数学上使用的千位分隔符,下画线可以出现在数字中间任意位置,但不能出现在开头和结尾,页不能使用多个连续的下画线符号。
正确使用下画线的实例如下:
1_000_000 # 1000000 1_2_3_4 # 1234
(1_2+3_4J) # (12+34J)
(2)浮点型
① 浮点型是一种表达实数的方式,浮点数是浮点型实数。
② 浮点型常量就是包含小数的常量,可以直接写成带小数点的小数形式(如158.20、-3.14),也可使用指数形式(具体形式为小数+E+阶码,e也可)表示(如-0.23E18、2.3e-6),而e-19(阶码标志e之前无数字)、2.1E(无阶码)等都不是正确的浮点型常量。
浮点数运算的示例如下:
0.3+1.21 # 1.51 0.4-0.1 # 0.3000000000000004 0.4-0.3 ==0.3 # False abs(0.4-0.1-0.3) <1e-6 # True
a)注:如果需要进行非常精确的运算,可以使用decimal模块,它实现的十进制实数运算能满足会计、金融等方面的有较高可依靠性及精度要求的应用,如果decimal模块还是无法满足实数运算的精度需求,则可以使用fractions模块。
decimal模块、fractions模块的使用示例如下:
from fractions import Fraction import decimal a =decimal.Decimal("10.0") b =decimal.Decimal("3") print(10.0/3) # 3.3333333333333335 print(a/b) # 3.333333333333333333333333333 print(Fraction(10,3)) # 10/3
(3)复数型
① 复数包含实数与虚数。复数可表示成实部+虚部j形式,如-5.8+6j、4.5+3e-7j。用complex(a[b])可创建复数a+bj。
② Python内置函数abs(复数)可用来计算复数的模,使用复数.conjugate()可得到共轭复数。Python还支持复数之间的加、减、乘、除等运算。
x =3+4j y =-6.2+5j print(x.real) # 输出实部3.0 print(x.imag) # 输出虚部4.0 print(abs(x)) # 输出模5.0 print(x.conjugate()) # 共轭复数(3-4j) print(x+y) # (-3.2+9j) print(x-y) # (9.2-1j) print(x*y) # (-38.6-9.8j) print(x/y) # (0.022068095838587622-0.6273644388398486j)
二、布尔型
(1)布尔型及其运算
① 布尔值
1)布尔值只有两个:真(True)、假(False)
② 布尔运算
1)布尔运算包括非(not)、与(and)和或(or),优先级从高到低。
③ 比较运算
1)拥有相同优先级,并且比布尔运算符的优先级高
a.注:数值型数据按数值比较大小;半角字符串从前到后逐个按对应字符的ASCII值比较大小;其他字符(如汉字)按照其编码比较大小。
b.进行大小比较的操作数必须是同类,不能把一个字符串和一个数字进行大小比较。
④ 比较+布尔运算
使用运算符and和or执行运算后并不一定会返回True或False,可能会得到最后一个被计算的表达式的值,但是使用运算符not执行运算后一定会返回True或False。
a =5 b =20 c =bool(a) print(c) # True print(a>b and b>a) # False print(a>b and b) # False print(b>a and a) # 5 print(a>b or b>a) # True print(b>a or a) # True print(a>b and b) # False print(not a>b) # True print(not a) # False print(not 0) # True print(True +1) # 输出2,系统把True当作1 print(False *2) # 输出0,系统把True当作0
(2)判断运算符
① 成员判断运算符:in
1)in判断元素是否在对象中,如果元素在对象中,则返回True;否则返回False
② 同值判断运算符:is
1)is判断两个对象是否为同一个对象,如果是同一个对象,则返回True;否则返回False
print(2 in range(1,10)) # True print('abc'in 'abBcdef') # False x =10; y=10 print(x is y) # True r =range(1,10) print(r[0] is r[1]) # False r1 =r print(r is r1) # True r2 =range(1,10) print(r1 is r2) # False
三、字符串型
(1)转义字符
(2)内置字符串函数
(3)字符串运算符
① +:字符串连接
② *:字符串重复
③ in/not in:in判断一个字符串是否为另一个的子字符串;not in则相反