Python3中六种标准数据类型的简单说明和理解【转】
Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
Python3 中有六个标准的数据类型:Number(数字) + String(字符串) + List(列表) + Tuple(元组) + Sets(集合) + Dictionary(字典)。
Number(数字)
数字类型是顾名思义是用来存储数值的,需要记住的是,有点和Java的字符串味道差不多,如果改变了数字数据类型的值,将重新分配内存空间。
可以使用del语句删除一些数字对象的引用:del var1[,var2[,var3[....,varN]]]]。
Python 支持三种不同的数值类型:
1.整型(Int) - 通常被称为是整型或整数,是正或负整数,不带小数点。Python3 整型是没有限制大小的,可以当作 Long 类型使用,所以 Python3 没有 Python2 的 Long 类型。
2.浮点型(float) - 浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 102 = 250)
3.复数( (complex)) - 复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。
数字类型转换
1.int(x) 将x转换为一个整数。
2.float(x) 将x转换到一个浮点数。
3.complex(x) 将x转换到一个复数,实数部分为 x,虚数部分为 0。
4.complex(x, y) 将 x 和 y 转换到一个复数,实数部分为 x,虚数部分为 y。x 和 y 是数字表达式。
额外说明
和别的语言一样,数字类型支持各种常见的运算,不过python的运算比别的大多数常见语言都更加丰富,此外,还有大量丰富的方法,提供更高效的开发。
String(字符串)
创建字符串
创建字符串可以使用单引号、双引号、三单引号和三双引号,其中三引号可以多行定义字符串,有点类似ES6中的反引号。
Python 不支持单字符类型,单字符也在Python也是作为一个字符串使用。
访问字符串中的值
和ES一样,可以使用方括号来截图字符串,例子如下:
val_str='yelloxing' print(val_str[0]) #y print(val_str[1:3]) #el print(val_str[:3]) #yel print(val_str[:5]) #yello
字符串运算符
除了上面已经说明的方括号,还有一些别的字符串运算,具体查看文档。
字符串格式化
temp="我叫 %s 今年 %d 岁!" % ('心叶', 7) print('['+temp+']') #[我叫 心叶 今年 7 岁!]
如上所示,字符串支持格式化,当然,出来上面用到的%s和%d以外,还有一些别的,具体看文档;是不是感觉有点C语言的味道。
额外说明
所有的字符串都是Unicode字符串(针对python3),有很多有用的方法,真的很有ES和C结合体的味道。
List(列表)
序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。
Python有6个序列的内置类型(列表、元组、字符串、Unicode字符串、buffer对象和xrange对象)。
列表其实类似数组,具体的一些操作就很像字符串(类似ES中数组和字符串的关系)。
常见运算
下面用一个例子来展示一些常见的运算:
val_arr=['Made','in','China'] del val_arr[1] print(val_arr) #['Made', 'China'] print(len(val_arr)) #2 val_newarr=val_arr+[':information'] print(val_newarr) #['Made', 'China', ':information'] val_arr=val_arr*2 print(val_arr) #['Made', 'China', 'Made', 'China'] print('in' in val_arr) #False print('Made' in val_arr) #True for row in val_newarr: print(row, end=" - ") #Made - China - :information - print(val_newarr[-1]) #:information print(val_newarr[1:]) #['China', ':information']
再来看一个有用的例子:
cols=3 rows=2 list_2d = [[0 for col in range(cols)] for row in range(rows)] print(list_2d) #[[0, 0, 0], [0, 0, 0]]
嵌套列表
使用嵌套列表即在列表里创建其它列表,例如:
loop_arr=['yelloxing','心叶'] result_arr=[loop_arr,'同级别'] print(result_arr) #[['yelloxing', '心叶'], '同级别']
列表的嵌套就很灵活,此外随便提一下:和前面说的一样,也有很多方法提供高效的开发。
Tuple(元组)
元组与列表类似,不同之处在于元组的元素不能修改,元组使用小括号,列表使用方括号。
创建
元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用
tup1 = ('Google', 'Runoob', 1997, 2000); tup2 = (1, 2, 3, 4, 5 ); tup3 = "a", "b", "c", "d"; print(tup1) #('Google', 'Runoob', 1997, 2000) print(tup2) #(1, 2, 3, 4, 5) print(tup3) #('a', 'b', 'c', 'd')
基本操作
和列表的操作很相似,下面说一个几天特殊的地方:
1.del可以删除某个元组,不过不可以删除元组的某个条目。
2.不可以修改,或许元组会更快,感觉的,没有实际测试。
3.由于元组不可以修改,虽然同样有一些方法,不过和修改相关的方法就没有了。
Sets(集合)
回想一下数学里面的集合,合、交、差、补等运算是不是一下子回想起来了,这里的集合也有这些方法。
和Java的集合类似,一个无序不重复元素集(与列表和元组不同,集合是无序的,也无法通过数字进行索引)。
更具体的说明,如果必要会在单独说明。
Dictionary(字典)
字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中,键必须是唯一的,但值则不必。
和ES中的JSON的差不多,操作也很像,不过区别也很大,内置方法很多,具体还是一样,看文档去。
删除字典元素
可以用del删除一个条目或字典,也可以用clear()方法清空字典(比如现在有字段dict,就是:dict.clear())。
相关推荐:http://www.roncoo.com/course/list.html?courseName=Python

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
MyBatis入门
1.MyBatis架构 架构图 2.入门 2.1准备 1.创建项目,普通java项目或是web项目都可。 2.导入jar包:mybatis-3.1.1.jar(低于这个版本的jar包需要导入很多依赖包)和mysql-connection-java 3.创建数据库和相应的表,SQL脚本如下: createdatabaseqf_work; useqf_work; createtableqf_user ( user_idintnotnull, user_roleintnotnull, user_namevarchar(20)notnull, user_passwordvarchar(20)notnull, primarykey(user_id) ); 2.2添加Mybatis的配置文件SqlMapConfig.xml <!DOCTYPEconfiguration PUBLIC"-//mybatis.org//DTDMapper3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <configuration> ...
- 下一篇
前后端分离架构使用shiro框架进行登录的两种实现
方法一:重写FormAuthenticationFilter 原理: 假设在shiro.xml中配置了 /** = authc 而默认authc对应org.apache.shiro.web.filter.authc.FormAuthenticationFilter过滤器 则表示所有路径都被此过滤器拦截 当未登录请求被拦截,会调用FormAuthenticationFilter.onAccessDeny(): 如果请求的是loginUrl,则调用AuthenticatingFilter.executeLogin() 如果不是,则使request重定向到loginUrl,并return false; AuthenticatingFilter.executeLogin(): 调用subject.login(token) 如果登录成功,则调用onLoginSuccess() 失败则调用onLoginFailure() AuthenticatingFilter.onLoginSuccess(): return true; AuthenticatingFilter.onLoginFailure()...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Hadoop3单机部署,实现最简伪集群
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker安装Oracle12C,快速搭建Oracle学习环境