Python的常见数据类型

数据大师
数据大师
数据大师
294
文章
0
评论
2021-08-1310:24:25 评论 871 2300字
摘要

在内存中存储的数据分为多中类型;比如,一个人的年龄可以用数字来存储,他的名字可以用字符来存储。 Python 定义了一些常用数据类型,用于存储各种类型的数据。

 

一、常见数据类型

 

整数类型:int - > 11

浮点类型:float - > 11.23

布尔类型:bool - > True , False

字符串类型:str -> "hello world"

 

二、整数类型

 

整数类型可以表示正数、负数和0,整数类型用int表示。 整数类型使用不同进制来表示数据,如下:

 

十进制: 默认进制

二进制:整数类型用0b开头表示二进制

八进制:整数类型用0o开头表示八进制

十六进制:整数类型用0x开头表示十六进制

# 整数类型# 定义各种整数类型变量#正数n1 = 200# 0n2 = 0# 负数n3 = -200# 二进制整数n4 = 0b1010# 八进制整数n5 = 0o213# 十六进制整数n6 = 0x12a2print(n1,type(n1))print(n2,type(n2))print(n3,type(n3))print(n4,type(n4))print(n5,type(n5))print(n6,type(n6))

输出结果如下:

200 <class "int">0 <class "int">-200 <class "int">10 <class "int">139 <class "int">4770 <class "int">

 

三、浮点型(float)

 

浮点型是由整数和小数部分组成,且浮点数存储数据存在不精确性;特别是使用浮点数进行计算时,小数位数容易出现不确定性。

# 浮点类型f1 = 3.1415926print("f1",f1,type(f1))# 演示浮点类型数字计算不精确性print("浮点计算",1.1+2.2)print("浮点计算",1.1+2.1)

输出结果:

f1 3.1415926 <class "float">浮点计算 3.3000000000000003浮点计算 3.2

 

如何解决浮点型计算不精确的问题?

由于计算机存储是使用二进制存储,浮点型容易出现不精确的情况。怎么解决这个情况呢,通常我们是导入decimal模块。

# 解决浮点类型数字计算不精确性from decimal import Decimalprint("Decimal浮点计算",Decimal("1.1")+Decimal("2.2"))# 希望知道原因的大牛可以告知,是否依旧是二进制原因呢?print("Decimal浮点计算依旧错误",Decimal(1.1)+Decimal(2.2))

输出结果如下:

Decimal浮点计算 3.3Decimal浮点计算依旧错误 3.300000000000000266453525910

 

四、布尔类型(bool)

 

布尔类型是用来表示真或者假,类似二进制的0和1。所以java或者其他语言中,0表示假,其他数值可以表示真;同样的python也有同样的设定。 True 表示 真,可以用1表示 False 表示假,可以用0表示 与其他语言不一样的地方是,布尔类型是可以当成整数类型计算的。

# 布尔类型f1 = Truef2 = False# 输出类型print("f1", type(f1))print("f2", type(f2))# 布尔类型用于计算print("计算加法", f1 + 1)print("计算减法", f2 - 1)# 布尔类型计算后是什么类型print("计算后类型", type(f1 + 1))print("计算后类型", type(f1 - 1))

控制台输出:

f1 <class "bool">f2 <class "bool">计算加法 2计算减法 -1计算后类型 <class "int">计算后类型 <class "int">

 

五、字符串类型

 

字符串是 Python 中最常用的数据类型。我们常用引号("或")来创建字符串。 Python 中不支持单字符类型,单字符在 Python 中也是作为一个字符串使用(不存在java中char在这种类型)。 字符串称之为不可变的字符序列(后面会细说)。 上面说了常用单引号或者双引号来创建字符串,这样创建出来的字符串必须要在一行,而通过三引号创建出来的字符串可以分布连续的多行(三引号通常是 """ """ 或者是""" """)。

# 字符串类型s1 = "字符串1"s2 = "字符串2"# 多行字符串s3 = """字符串3"""print("s1", s1, id(s1))print("s2", s2, id(s2))print("s3", s3, id(s3))

控制台输出

s1 字符串1 31856784s2 字符串2 31856832s3 字符串3 22805920

 

六、类型转换

 

类型转换是通过几个函数来进行转换处理,可以看下图,比较清晰的解释出集中数据类型的数据转换方法 Python的常见数据类型 

举一个简单例子,说下字符串类型和整数类型放在一起处理会如何:

# 数据类型转换name = "张三"age = 20print(type(name), type(age))print("我叫"+name+",今年"+age+"岁")

输出结果如下:

<class "str"> <class "int">Traceback (most recent call last):    print("我叫"+name+",今年"+age+"岁")TypeError: can only concatenate str (not "int") to str

可以看到的是, 字符串类型和整数类型通过+拼接时报错了(这点和java不同,java字符串可以直接拼接整数类型组成新的字符串),需要将整数类型转换成字符串类型

print("我叫"+name+",今年"+str(age)+"岁")

 

 

End.

作者:林三的日常

本文为转载分享,如果涉及作品、版权和其他问题,请联系我们第一时间删除(微信号:lovedata0520)

更多文章前往首页浏览http://www.itongji.cn/

 
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: