Python 的数据表示
一、常量、变量和对象
1、常量:是指在程序的执行过程中不变的量。如:1,2,3,4,……,true、false
也有一些包含在模块中的用符号表示的常量,常用的如math模块中的pi和e,如:
>>>from math import sqrt,sin >>>pi #显示3.141592653589793 >>>e #显示2.718281828459045
2、变量:指向对象的值的名称就是变量。变量是一个标识符,通过等号(=)赋值运算创建,变量指向一个对象。从变量到对象的连接成为引用(Reference)。
等号(=)成为赋值运算符,a=5可以理解为把5赋给变量a。事实上,变量拥有自己的空间,变量连接到对象只是变量存储了对象的单元的存储地址,并没有存储对象的值。多个变量可以引用同一个对象,一个变量也可以引用不同的对象。引用不同的对象时,id也就不同了。
赋值运算可以使用“连等”,如:a=b=5+3 相当于:b=5+3,a=b.
1)Python中的变量不需要声明。随时可以使用一个符号,使用等号给它赋值,以后就可以使用这个符号代表那个值。
2)可以随时赋不同类型的值。 变量通过赋值产生以后,可以随时再赋其他的值,甚至后赋的值可以和以前的值有不同的类型。也就是说,后面的赋值和前面一点关系都没有,就像新创建了一个变量一样。
例如:
a=12 #此后, a表示整数 12
a=1.2 #此后,a 表示实数1.2
a="string" #此后,a 表示一串字符“string”
3)可以使用一个等号为多个变量赋值。如:
>>> x,y,z=10,20,30
>>> x
10
>>> y
20
>>> z
30
>>>
3、对象:Python中一切皆对象。
写出的数据1,2,3,使用的符号a,b,c,定义的函数sin(x)等等,都是对象。对象是某个类型事物的一个具体的实例。
Python中的每一个对象都有一个唯一的身份标识(Identity,简称id)、一种类型和一个值。对象的id是一个整数,一旦创建就不再改变,可以把它当做对象在内存中的地址,使用id()函数可以获得对象的id标识。例如:
>>> id(11)
1521440656
>>> id("anecdote")
61815168
对象的类型决定了对象支持的操作,也定义了对象的取值范围。type()函数返回对象的类型。例如:
>>> type(12)
<class 'int'>
>>> type(1.2)
<class 'float'>
>>> type("object")
<class 'str'>
对象的类型也是不能改变的。
有些对象的值可以改变,称为可变对象(Mutable);有些对象的值一旦创建就不可再改变,称为不可变对象(Immutable)。Python大部分对象是不可变对象,如数值对象、字符串、元组等;字典、列表等是可变对象。
二、Python的数据类型
分为:数字类型、序列类型、集合类型、字典类型等。
(一)数字类型
数字类型是指那些能进行算术运算、位运算和数学函数运算的数据类型,包括以下几种:
1、整数类型(Int):1,12
2、浮点型(Float):3.14,9.03
3、复数类型(Complex):3+5i
4、布尔型(Bool):true,false
5、其他数字类型:
1)Decimal类型
2)分数类型
(二)序列类型:表示的是若干有序的数据,分不可变序列类型和可变序列类型
不可变序列类型的数据一旦写定,其中的数据就不能再改变。此类型有:字符串、元组和字节序列。
可变序列类型的数据的内容可以更改。此类型有:列表、字节数组等。
1、字符串(str):写在一对单引号、双引号或三单引号、三双引号之间。
2、元组类型(tuple):在一对圆括号中,用逗号隔开的一组数据称为一个元组。元组表示任意类型的数据的序列,如(1,2,3)、('zhao','qian','sun','li')等。元组中的多个数据的类型可以不同,如(1,2,3,'one','two','three')等。
3、字节序列(bytes)强调数据是一系列的字节。生成的字节序列是不可修改的。
4、列表:列在一对方括号中的用逗号隔开的若干数据是一个列表。
5、字节数组(bytearray)表示可修改的字节序列。生成的字节序列是可修改的。
(三)其他类型
1、集合数据类型
~ 表示若干数据的集合,集合中的项目没有顺序,且不重复。
写在一对大括号中的用逗号隔开的数据就是集合(Set)数据,如{1,2,3}。集合数据是可变的。
写在frozenset()圆括号中的序列、集合变成不可变集合(frozenset)数据。
2、字典数据类型
~ 类似集合类型,字典中的每一项数据包括两部分,一个是键,一个是值。例如:{name:"zhang san",addr:"Fujian Xiamen",tel:"123453"}。键相当于一个类别的名字
3、Python一切皆有类型
Python中的一切事物都属于一个数据类型,如模块、类、对象、函数等都属于某一类事物。每类事物都有它们的特征,这就是它们的型。像模块类型、type类型、对象类型、可调用数据类型(如一切可调用的函数、方法等)等。
数据的类型可以使用内置函数type()来查看,例如:
>>> type(12)
<class 'int'>
>>> type(1.2)
<class 'float'>
>>> type("object")
<class 'str'>
>>> type(1.2j)
<class 'complex'>
>>> type([1,2,3])
<class 'list'>
>>>
Python 的数据表示的更多相关文章
- Python深度学习读书笔记-3.神经网络的数据表示
标量(0D 张量) 仅包含一个数字的张量叫作标量(scalar,也叫标量张量.零维张量.0D 张量).在Numpy 中,一个float32 或float64 的数字就是一个标量张量(或标量数组).你可 ...
- python学习笔记11 ----网络编程
网络编程 网络编程需要知道的概念 网络体系结构就是使用这些用不同媒介连接起来的不同设备和网络系统在不同的应用环境下实现互操作性,并满足各种业务需求的一种粘合剂.网络体系结构解决互质性问题彩是分层方法. ...
- 使用Python进行描述性统计
目录 1 描述性统计是什么?2 使用NumPy和SciPy进行数值分析 2.1 基本概念 2.2 中心位置(均值.中位数.众数) 2.3 发散程度(极差,方差.标准差.变异系数) 2.4 偏差程度(z ...
- sqlite以及python的应用
有点乱,自己平时,遇到了就记下来,所以没整理. 数据库sqlite,以及Qt对数据库的操作 sql学习网址: sqlite官网:http://www.sqlite.org http://www.w3s ...
- 2016年GitHub排名前20的Python机器学习开源项目(转)
当今时代,开源是创新和技术快速发展的核心.本文来自 KDnuggets 的年度盘点,介绍了 2016 年排名前 20 的 Python 机器学习开源项目,在介绍的同时也会做一些有趣的分析以及谈一谈它们 ...
- python 各模块
01 关于本书 02 代码约定 03 关于例子 04 如何联系我们 1 核心模块 11 介绍 111 内建函数和异常 112 操作系统接口模块 113 类型支持模块 114 正则表达式 115 语言支 ...
- 字符编码和python使用encode,decode转换utf-8, gbk, gb2312
ASCII码 标准ASCII码使用7位二进制数表示大写或小写字母,数字0到9标点符号以及在美式英语中使用的特殊控制字符. 在标准ASCII码中,最高位(b7)用作奇偶校验位,所谓奇偶校验,是指在代码传 ...
- python变量与数据类型
变量 什么是变量 所谓变量,指的是在程序运行过程中需要用到的中间结果,变量定义后,会占用一块内存开辟的空间地址,通过内存空间确保同一时间的唯一性. >>> print(id.__do ...
- Python学习之路-Day2-Python基础2
Python学习之路第二天 学习内容: 1.模块初识 2.pyc是什么 3.python数据类型 4.数据运算 5.bytes/str之别 6.列表 7.元组 8.字典 9.字符串常用操作 1.模块初 ...
随机推荐
- 洛谷 P3371 【模板】单源最短路径 【链式前向星+SPFA】
题目描述 如题,给出一个有向图,请输出从某一点出发到所有点的最短路径长度. 输入输出格式 输入格式: 第一行包含三个整数N.M.S,分别表示点的个数.有向边的个数.出发点的编号. 接下来M行每行包含三 ...
- 线段树+Dfs序【CF620E】New Year Tree
Description 你有一棵以1为根的有根树,有n个点,每个节点初始有一个颜色c[i]. 有两种操作: 1 v c 将以v为根的子树中所有点颜色更改为c 2 v 查询以v为根的子树中的节点有多少种 ...
- 6、Flask实战第6天:视图函数Response返回值
视图函数的返回值会被自动转换为一个响应对象,Flask的转换逻辑如下: 如果返回的是一个合法的响应对象,则直接返回 可以使用make_response函数来创建Response对象,这个方法可以设置额 ...
- Educational Codeforces Round 10 E - Pursuit For Artifacts (强联通缩点 + 回溯)
题目链接:http://codeforces.com/contest/652/problem/E 给你n个点m个边,x和y双向连接,要是z是1表示这条边上有宝藏,0则没有,最后给你起点和终点,问你要是 ...
- [BZOJ4650][NOI2016]优秀的拆分(SAM构建SA)
关于解法这个讲的很清楚了,主要用了设关键点的巧妙思想. 主要想说的是一个刚学的方法:通过后缀自动机建立后缀树,再转成后缀数组. 后缀数组功能强大,但是最令人头疼的地方是模板太难背容易写错.用这个方法, ...
- Java矩阵库—jblas、ujmp、jmatio的相互转化
1)首先使用jmatio(v0.2)从.mat文件读取数据到内存中,并将其转化为二维数组的形式. import com.jmatio.io.MatFileReader; import com.jmat ...
- Node.js 调用 restful webservice
如何构建一个restful web service参考原来的文章 http://www.cnblogs.com/ericnie/p/5212748.html 直接用原来的项目编译好像有问题,此处耗费1 ...
- Linux环境下安卓SDK和ADT下载地址下载地址
SDK: android-sdk_r15-linux.tgz android-sdk_r23.0.1-linux.tgz android-sdk_r24.1.2-linux.tgz android-s ...
- DELPHI黑客编程(一):正向后门原理实现
前言 在渗透测试中经常用到远控.后门等辅助后渗透权限维持工具,有一款好用的自制后门可以在巩固渗透成果方面有很大的帮助.今天给大家简单讲解下后门的原理和实现的方法,主要针对技术研究和原理演示,请各位看官 ...
- 使用.reg文件删除暴风影视库图标和注册信息
暴风播放器安装后会自动安装一个叫暴风影音库的软件,在你的电脑资源管理器中增加了一个“暴风影视库”的图标.看着很烦,删起来还比较麻烦,于是搜索了相关资源,自己写了个注册表处理文件,方便大家一键删除之. ...