一、数字类型
1.1整形(int)
定义
- 整数型包括正整数、负整数、0
- 在python中整数类型使用int表示
进制
整数可以表示为二进制、十进制、八进制、十六进制,python默认使用10进制
print('十进制',118) #默认情况
print('二进制',0b10101111) #二进制以0b开头,后续内容由字符0和1组成
print('八进制',0o176) #八进制以0o开头,后续内容由字符0-7组成
print('十六进制',0x1EAF) #十六进制以0x开头,后续内容由字符0-9,a-f,和A-F组成
#其中,开头处0b,0o,0x中字母大小写不敏感
1.2浮点数(float)
定义
- 浮点数由整数部分和小数部分组成
- python中浮点数类型使用float表示
表现形式
a=3.4 #正常格式 a.b
a=-1.5 #可以为负数
a=0.0 #浮点的小数部分可以是0
a=74. #当浮点小数部分为0时,可省略不写
a=.5 #当整数部分为0时,可省略不写
a=7.1e-2 #能使用科学计数法,e后的-2号表示除10^2,若为+2则表示乘10^2,其中e大小写不敏感
扩展
1.浮点数也可以表示整数,为何python还要提供两种类型
因为计算机的底层表示整数和浮点数的方式不一样,相同的操作整数比浮点数要快5-20倍
2.一般情况下计算机只能提供小数点后15位数字的准确性,浮点数超过15后位产生误差,如何解决
import decimal
a=decimal.Decimal('1.223456777899')
b=decimal.Decimal('3.447859445122')
print(a*b)
#python提供无限精度的整数运算,可通过取消ab的小数点,进行相乘对比小数运行结果,验证数据正确性
1.3复数
#其中j^2=-1
a=15.1+2j
print(a,type(a))
print(a.real,a.imag)
1.4布尔类型(bool)
定义
- 用来表示真或假
- True表示真,False表示假
- 布尔值可以转化为整数
True:1
False:0
转换
所有的数据都可以通过bool()这个内置函数将数据转化为布尔型
print(bool('haha')) #True
规则:
- 在python中,0,0.0,0.0+0.0j,'',[],{},set(),None转化为布尔型是False
- 其余数据都为True
二、字符串类型(str)
定义
- 字符串又被称为不可变的字符序列
- 可以使用单引号' '双引号" "三引号""" """或''' '''
- 单引号和双引号定义的字符串必须在一行
- 三引号定义的字符串可以分布在连续的多行
三、数据类型转换
将不同数据类型的数据拼接在一起
name='张三'
age=20
#print('我叫'+name+'今年'+age+'岁') #将str类型与int类型进行连接时,报错,解决方案,类型转换
print('我叫'+name+'今年'+str(age)+'岁') #将int类型通过str()函数转换成str类型
将其他类型转出str类型str()
a=10
b=198.8
c=False
print(type(a),type(b),type(c))
print(str(a),str(b),str(c),tpye(str(a)),tpye(str(b)),tpye(str(c)))
将其他类型转为int类型int()
s1='128'
f1=98.7
s2="76.77"
ff=True
s3='hello'
print(type(s1),type(f1),type(s2),type(ff),type(s3))
print(int(s1),type(int(s1))) #将str转成int类型,字符串需为数字串
print(int(f1),type(int(f1))) #将float转成int类型,截取整数部分,舍掉小数部分
#print(int(s2),type(int(s2))) #将str转出int类型,报错,因为字符串为小数串
print(int(ff),type(int(ff)))
#print(int(s3),type(int(s3))) #将str转换为int类型时,字符串必须为数字串(整数),非数字串不允许转换
将其他数据类型转成float类型float()
s1='128.98'
s2="76"
ff=True
s3='hello'
i=98
print(type(s1),type(s2),type(ff),type(s3),type(i))
print(float(s1),type(s1))
print(float(s2),type(s2))
print(float(ff),type(ff))
#print(float(s3),type(s3)) #字符串中的数据如果是非数字串,则不允许转换
print(float(i),type(i)) #整数转为浮点数,末尾为.0