python基础之五大标准数据类型

python基础之五大标准数据类型学习一门语言,往往都是从HelloWorld开始。但是笔者认为,在一个黑框框中输出一个“你好,世界”并没有什么了不起,要看透事物的本质,熟悉一门语言,就要了解其底层,就是我们常常说的基础。本篇从p

大家好,又见面了,我是你们的朋友全栈君。

学习一门语言,往往都是从Hello World开始。 但是笔者认为,在一个黑框框中输出一个“你好,世界”并没有什么了不起,要看透事物的本质,熟悉一门语言,就要了解其底层,就是我们常常说的基础。本篇从python中的变量类型开始。

五大标准数据类型

在内存中存储的数据可以有多种类型。

例如, 一个人的名字可以用字符来存储, 年龄可以用数字来存储, 爱好可以用集合来存储等等。

Python有五个标准的数据类型:

  • Numbers(数字)
  • String(字符串)
  • List(列表)
  • Tuple(元组)
  • Dictionary(字典)

其中属于集合类型的数据类型有 列表、元组及字典

0x00. 数字(Numbers)

数字数据类型用于存储数值。

他们是不可改变的数据类型,这意味着改变数字数据类型会分配一个新的对象。

当你指定一个值时,Number对象就会被创建:

var1 = 1
var2 = 2

del语句删除一些对象的引用,其语法是:

del var1[,var2[,var3[....,varN]]]]

通过使用del语句可以删除单个或多个对象的引用。例如:

del var1
del var1, var2

四种不同的数字类型

  • int(有符号整型)
  • long(长整型[也可以代表八进制和十六进制])
  • float(浮点型)
  • complex(复数)

a. int(整型)

  在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647
  在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807

b. long(长整型)
  跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,长整数数值不可能无限大。
  注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。

c. float(浮点型)

  浮点数用来处理实数,即带有小数的数字。类似于C语言中的double类型,占8个字节(64位),其中52位表示底,11位表示指数,剩下的一位表示符号。
d. complex(复数)
  复数由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。

       注:Python中存在小数字池:-5 ~ 257

小整数对象——小整型对象池

在实际编程中,数值比较小的整数,比如1,2,29等,可能会非常频繁的出现。而在python中,所有的对象都存在于系统堆上。想想?如果某个小整数出现的次数非常多,那么Python将会出现大量的malloc/free操作,这样大大降低了运行效率,而且会造成大量的内存碎片,严重影响Python的整体性能。

在Python2.5乃至3.3中,将小整数位于[-5,257)之间的数,缓存在小整型对象池中。

 

0x01. 字符串(String)

字符串或串(String)是由数字、字母、下划线组成的一串字符。

它是编程语言中表示文本的数据类型。

Python的字串列表有2种取值顺序:

  • 从左到右索引默认0开始的,最大范围是字符串长度少1
  • 从右到左索引默认-1开始的,最大范围是字符串开头

如果你要实现从字符串中获取一段子字符串的话,可以使用变量 [头下标:尾下标],就可以截取相应的字符串,其中下标是从 0 开始算起,可以是正数或负数,下标可以为空表示取到头或尾。

比如:

s = 'i love python'

s[2:6]的结果是love。(顾头不顾尾,或左闭右开)

操作实例:

str = 'Hello World'

print(str)                 #输出完整字符串
print(str[0])              #输出字符串中的第一个字符
print(str[2:5])            #输出字符串中第三个至第五个之间的字符
print(str[2:])             #输出从第三个开始到最后的字符串
print(str*2)               #输出字符串两次
print('say: ' + str)       #输出连接的字符串

  

0x02. 列表(List)

List(列表) 是 Python 中使用最频繁的数据类型。

列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(所谓嵌套)。

操作实例:  

list =  ['apple', 'jack', 798, 2.22, 36]
otherlist = [123, 'xiaohong']

print(list)                             #输出完整列表
print(list[0])                          #输出列表第一个元素
print(list[1:3])                        #输出列表第二个至第三个元素 
print(list[2:])                         #输出列表第三个开始至末尾的所有元素
print(otherlist * 2)                    #输出列表两次
print(list + otherlist)                 #输出拼接列表

 

0x03. 元祖(Tuple)

元组是另一个数据类型,类似于List(列表)。

元组用”()”标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。

操作实例与列表相似

 

0x04. 字典(Dictionary)

字典(dictionary)是除列表以外Python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。

两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

字典用”{ }”标识。字典由索引(key)和它对应的值value组成。

操作实例:

dict = {}
dict['one'] = 'This is one'
dict[2] = 'This is two'
tinydict = {'name':'john','code':5762,'dept':'sales'}

print(dict['one'])                          #输出键为'one'的值
print(dict[2])                              #输出键为2的值
print(tinydict)                             #输出完整的字典
print(tinydict.keys())                      #输出所有键
print(tinydict.values())                    #输出所有值

 

未完待续,下一篇,python基础之七种运算符

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/155918.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • H2数据库入门_H2数据库越来越大

    H2数据库入门_H2数据库越来越大一、H2简介  1、H2是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中。  H2最大的用途在于可以同应用程序打包在一起发布,这样可以非常方便地存储少量结构化数据。  它的另一个用途是用于单元测试。启动速度快,而且可以关闭持久化功能,每一个用例执行完随即还原到初始状态。  H2的第三个用处是作为缓存,作为NoSQL的一个补充。当某些场景下数据模型必须为关系型…

    2022年10月12日
    2
  • 使用@DateTimeFormat注解的时候报错

    使用@DateTimeFormat注解的时候报错使用 Springboot 框架搭建项目 DateTimeForm 作用是前后到后台的时间格式的转换 使用 yyyy MM dd 格式的字符串传入日期类型数据是入参转换没有问题 使用 yyyy MM ddHH mm ss 格式时间字符串就会报错 Datapubliccl privateDatei 报错信息 messag

    2025年11月1日
    3
  • netstat 命令详解

    netstat 命令详解netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。语法选项netstat[选项]-a或–all:显示所有连线中的Socket;-A<网络类型>或–<网络类型>:列出该网络类型连线中的相关地址;

    2022年5月7日
    51
  • Python全栈工程师(每周总结:2)

    Python全栈工程师(每周总结:2)ParisGabrielParisGabriel感谢大家的支持每天坚持一天一篇点个订阅吧灰常感谢当个死粉也阔以weeksummer:Python人工智能从入门到精通字符串st

    2022年7月5日
    26
  • CGLIB代理使用与原理详解

    CGLIB代理使用与原理详解JDK中提供的生成动态代理类的机制有个鲜明的特点是:某个类必须有实现的接口,而生成的代理类也只能代理某个类接口定义的方法。那么如果一个类没有实现接口怎么办呢?这就有CGLIB的诞生了,前面说的JDK的动态代理的实现方式是实现相关的接口成为接口的实现类,那么我们自然可以想到用继承的方式实现相关的代理类。【1】CGLIB简单实现①pom依赖如下<!–https://…

    2022年5月22日
    70
  • sublime3 激活码【中文破解版】

    (sublime3 激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~S32P…

    2022年3月25日
    48

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号