python学习_数据类型
一、python常用的数据类型
- 数值类型:整数类型 int,如9;浮点数类型float,如3.14159
- 布尔类型 bool,如True和False,只有这两个值
- 字符串类型str,如"人生苦短"
二、数值类型
-
整数类型
可以表示正数、负数和零,整数类型的数据有不同进制表示方式,有如下几种进制表示方式
十进制:默认的进制
二进制:以0b开头,如print("二进制整数",0b10110110)
八进制:以0o开头,如print("八进制整数",0o176)
十六进制:以0x开头,如print("十六进制整数",0x1EAF)
-
浮点数类型
浮点数由整数部分和小数部分组成,由于计算机采用二进制,对于浮点数的存储存在不精确,所以使用浮点数进行计算时,可能会存在小数位数不确定的情况,
要解决这个小数位数不确定的问题,我们可以通过导入decimal模块来进行精确计算
0.1+0.2==0.3 #结果为False
要解决这种情况需要用到decimal模块的Decimal()
import decimal a=decimal.Decimal('0.1')
b=decimal.Decimal('0.2')
print(a+b)
c=decimal.Decimal('0.3')
a+b==c
浮点数的科学计数法表示:0.00005=5e-05
-
不常用数值类型:复数
复数由实部+虚部组成,形式如1+2j,其中1就是实部,2就是虚部,实部和虚部在计算机中都是以浮点数的形式存放的
x=1+2j print('实部',x.real) print('虚部',x.imag)
由上可见实部和虚部都是浮点数存放
- 数值运算
print(3+2) #5 print(3-2) #1 print(3*2) #6 print(3/2) #1.5 print(3//3) #1,整除,向下取整 print(3//-2) #-2,向下取整 print(3%2) #1,余数 print(3%-2) #-1,余数=被除数-除数*商(整除的结果) 也就是=3-(-2)*(3//-2)=-1 print(pow(2,4)) #16,幂运算:2的4次方 print(2**4) #16,幂运算:2的4次方 print(abs(-20)) #20,绝对值运算 print(abs(1+2j)) #2.23606797749979,结果为负数的模 print(int('520')) #520,只有字符串里面是整数才能转成int类型 print(int(3.14)) #3,直接抹掉小数部分 print(int(9.99)) #9 print(int(-9.99)) #-9 print(float('3')) #3.0 ,只有字符串里面是数字才能转成float类型 print(float('3.14159')) #3.14159 print(float(3)) #3.0 print(complex(1,2)) #(1+2j),得到一个复数 print(divmod(3,2)) #(1, 1),返回(x//y,x%y)
三、布尔类型
布尔类型只有两个值True和False,也就是真和假,True表示真,False表示假,布尔类型其实也是一种特殊的整数类型,可以转换为整数参与计算,True表示整数1,False表示整数0,python中一切皆对象,在python中所有对象都有一个bool值,要获取对象的布尔值使用内置函数bool()
以下对象的布尔值为False:
1)None和False对象
2)值为0的数字类型:0,0.0,0j,Decimal(0),Fraction(0,1) #注意:Fraction(0,1)表示的是分子为0,分母为1的有理数
3) 空的字符串、列表、字典、元组和集合: '',[],list(),{},dict(),(),tuple(),set(),range(0)
其他只要内容不为空的对象,数字不为0布尔值就是True
import decimal import fractions print(bool('250')) #True print(bool('False')) #True print(bool(False)) #False print(bool(None)) #False print(bool('')) #False print(bool(' ')) #True,有空格也是True print(bool(0)) #False print(bool(0.0)) #False print(bool(decimal.Decimal(0))) #False print(bool(fractions.Fraction(0,1))) #False print(bool([])) #False print(bool({})) #False print(bool(range(0))) #False print(True+False) #1 print(True-False) #1 print(True*False) #0
四、字符串类型
1)字符串又被称为不可变的字符序列
2)可以使用单引号' '、双引号" "、三引号''' '''或者""" """来定义
3)单引号和双引号定义的字符串必须在一行
4)三引号定义的字符串可以分布在连续的多行
五、数据类型转换:
为什么需要数据类型转换?
将不同数据类型的数据拼接在一起时就需要用到数据类型转换
三种数据类型之间的相互转换关系如下: