数据类型

发布时间 2023-10-23 20:50:29作者: Justinpop
数据类型
一、数值型

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则相反