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.模块初 ...
随机推荐
- 零基础如何学习 Web 安全?(转)
在网上看了一篇文章<零基础如何学习 Web 安全?>,虽然很多东西的都不是很懂,感觉挺好的copy过来,慢慢消化: 文章地址:https://www.zhihu.com/question/ ...
- sqlmap的小试牛刀
这次算是一次用sqlmap的例子,写的很水. 目的:通过工具扫描到了后台的数据库的地址(如下图),想通过sqlmap找到数据库的用户和密码进入到数据库(首先可以尝试一下root:root一般都是这个情 ...
- Python3 list记录
#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Author;Tsukasa name = ['YangJiaHui','LiuYueEr','TaB ...
- codevs 1643 线段覆盖 3
1643 线段覆盖 3 时间限制: 2 s 空间限制: 256000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description 在一个数轴上有n条线段,现要选取其中 ...
- 【费用流】bzoj2661 [BeiJing wc2012]连连看
将每个数拆点,互相连边,然后满足条件的数对之间互相连边,跑最大费用流,答案是流量和费用分别除以2. 一定要i->j.j->i都连上,否则可能会出现一个数在一边被选择了,在另一边的另一个匹配 ...
- 【LCA倍增】POJ1330-Nearest Common Ancestors
[知识点:离线算法&在线算法] 一个离线算法,在开始时就需要知道问题的所有输入数据,而且在解决一个问题后就要立即输出结果. 一个在线算法是指它可以以序列化的方式一个个的处理输入,也就是说在开始 ...
- 微服务之SpringCloud实战(二):SpringCloud Eureka服务治理
服务治理 SpringCloud Eureka是SpringCloud Netflix微服务套件的一部分,它基于Netflix Eureka做了二次封装,主要完成微服务的服务治理功能,SpringCl ...
- iOS 多线程之NSOperation篇举例详解
这篇博客是接着总篇iOS GCD NSOperation NSThread等多线程各种举例详解写的一个支篇.总篇也包含了此文的链接.本文讲解的知识点有NSBlockOperationClick,队列, ...
- Jquery的Split二次分割
<script type="text/javascript">var str="Q1#k1:Q2#k2"var str2=str.split(':' ...
- 水晶报表导出完美EXCEL表格
水晶报表自带的导出Excel不太完美(这一点与SQL的SSRS相比就差太远了),导出的文件没有网格线,而且非常容易出现跨行跨列的现象,要做一个符合要求的报表还真要花不少的时间与精力去调试. 下面我简单 ...