python学习_数据类型

发布时间 2023-07-07 17:51:03作者: 机智的老猫咪

一、python常用的数据类型

  1. 数值类型:整数类型 int,如9;浮点数类型float,如3.14159
  2. 布尔类型 bool,如True和False,只有这两个值
  3. 字符串类型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中为True情况很多,为False的情况大概就以下几种:

为False的情况:

1)None和False对象

2)值为0的数字类型:0,0.0,0j,Decimal(0),Fraction(0,1)   #注意:Fraction(0,1)表示的是分子为0,分母为1的有理数

3)  空的序列和集合: '',[],{},(),set(),range(0)

其他只要内容不为空,数字不为0就是True

bool()函数可以用来计算数据类型的布尔值

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)三引号定义的字符串可以分布在连续的多行

 五、数据类型转换:

为什么需要数据类型转换?

将不同数据类型的数据拼接在一起时就需要用到数据类型转换

函数名 作用 注意事项 举例
str() 将其他数据类型转成字符串  

str(123)

"123"

int() 将其他数据类型转成整数

1.文字类或者小数类字符串无法转成整数

2.浮点数类型转成整数时,直接取整数部分,小数部分抹零

int('123')

int(98.7)

int(True)

#print(int('98.77'))     #小数串无法转成整数类型
#print(int('hello'))     #文本串的字符串无法转成整数类型
float() 将其他数据类型转成浮点数

1.文字类字符串无法转成浮点数类型

2.整数转成浮点数类型,末尾直接加.0

float('9.9')

float('98')

float(True)

float(128)

三种数据类型之间的相互转换关系如下: