本节我们开始学习python的数据类型。

什么是数据类型呢?前面我们提过,所谓的编程,就是控制一系列的数据去完成我们预设的逻辑或者功能。所以,编程语言首先要定义一系列对“数据”的处理规则。这些处理规则包括:如何存储数据、数据的长度、数据的赋值、数据的读取、数据的显示、数据的比较等等。

不同类型的数据,它们的这些处理规则是不一样的。比如:整数和小数在内存中的存储方式肯定是不一样的;小数有精度的操作,而字符串肯定是没有的。

因此,编程语言需要对我们用到的所有数据进行分类,抽象出一些基本的类型,这就是编程语言定义的数据类型。

不同的编程语言所定义的数据类型其实大同小异,所以你只要理解了python的数据类型,其它编程语言的数据类型也基本都能搞明白。

Python3 中定义了七个标准的数据类型:

  • l  Number(数字)
  • l  String(字符串)
  • l  Bytes(字节)
  • l  List(列表)
  • l  Tuple(元组)
  • l  Set(集合)
  • l  Dictionary(字典)

下面我们结合一些实例,依次学习这几个标准类型。

Number(数字)

 建议通过视频来学习本节内容: 查看本节视频

数学中的数字包括整数、小数,python中也对应定义了整型(int)和浮点型(float),另外还定义了复数类型(complex)和布尔型(bool)。

  • Int:它定义了一个整数类型。在C语言中,有很多不同的整型,如下表:

不同的类型,有不同的存储大小和取值范围,超出这个范围就会溢出报错。Python明显简化了这一类型,所有的整数类型,不论正负不论大小,全都归一为int类型。Python2还保留了long类型,python3把long类型也去掉了。

我们可以使用不同的方法表示一个int类型的数据,如下所示:

 # int 类型

 int_1 = 100  # 10进制正数
int_2 = -69 # 10进制负数
int_3 = 0x77 # 16进制正数
int_4 = -0x24 # 16进制负数
int_5 = 0o70 # 8进制正数
int_6 = -0o70 # 8进制负数
int_7 = 0b10 # 2进制正数
int_8 = -0b10 # 2进制负数

上面提到了进制,我们先花几分钟了解一下“进制”的概念,看下面这张图:

Python中使用0b开头表示二进制(bin)、0o开头表示八进制(oct)、0x开头表示十六进制(hex)。我们平时用得比较多的,是十进制(dec)、十六进制、二进制,八进制用得比较少。十六进制由于是满16进位,所以大于10的位用字母表示,10-15依次是a-f,不区分大小写。

进制是数值的不同表达方式。不同进制之间可以相互转换,参考下面的实例:

 # file: ./6/6_1.py

 # 进制表达和转换
temp_value = 32904 print(" 十进制:{}\n 二进制:{}\n 八进制:{}\n 十六进制:{}\n"
.format(temp_value, bin(temp_value), oct(temp_value), hex(temp_value)))

输出为:

十进制:32904

二进制:0b1000000010001000

八进制:0o100210

十六进制:0x8088

  • Float:它定义了一个小数类型。在编程语言中,我们习惯把小数叫做浮点数,所以float是浮点型。同样,python简化了浮点型的定义,不论数值大小以及精度,都归一为float类型。Python中有多种方式来表示一个浮点数,如下:
 # float 类型

 float_1 = 17.18  # 正浮点数
float_2 = -17.18 # 负浮点数
float_3 = 7.99E+3 # 科学计数正数
float_4 = -7.99E+3 # 科学计数负数
float_5 = 7.99E-3 # 科学计数
float_6 = 7.99E3 # 科学计数
float_7 = 198. # 等同于198.0
  • Complex:复数是由一个实数和一个虚数组合构成,表示为:x+yj,其中 x 是实数部分,y 是虚数部分。实数和虚数都是float类型数据。虚数部分必须有后缀j或者J。
 # file: ./5/5_2.py

 # complex 类型
cpx_1 = 123.2+34.6j print(cpx_1)
print('real: type %s, value %f' % (type(cpx_1.real), cpx_1.real))
print('imag: type %s, value %f' % (type(cpx_1.imag), cpx_1.imag))

输出为:

(123.2+34.6j)

real: type <class 'float'>, value 123.200000

imag: type <class 'float'>, value 34.600000

  •  Bool:布尔类型只有两个值,True和False,它们对应值为1和0。Python2中没有真正的布尔类型,使用1和0替代。Python3中明确定义了关键词True和False,注意大小写。
 # file: ./5/5_3.py

 # bool 类型
bool_1 = True
bool_2 = False print(bool_1)
print(bool_2)
print(int(bool_1)) # 强转为int类型
print(int(bool_2)) # 强转为int类型

输出为:

True

False

1

0

下一节我们开始学习String类型。

跟哥一起学python(4)- 数据类型之Number的更多相关文章

  1. 跟哥一起学python(3)- 理解“变量”

    我们把前面的程序稍微改一下,来了解python中的变量. # file: ./4/4_1.py # 定义变量 hello_str = "hello, world!" # 字符串打印 ...

  2. 跟哥一起学Python(1) - python简介

    01—写在前面 我做了十几年的程序猿,码过代码.带过项目.做过产品经理.做过软件架构师.因为我是做通信设备软件的,面向底层操作系统,所以我的工作主要以C语言为主.Python在我的工作中通常用来写一些 ...

  3. 跟哥一起学python(2)- 运行第一个python程序&环境搭建

    本节的任务,是完成我们的第一个python程序,并搭建好学习python的环境.  建议通过视频来学习本节内容: 查看本节视频 再次看看上一节提到的那张图,看看作为高级编程语言,我们如何编程. 首先, ...

  4. 小白学 Python(2):基础数据类型(上)

    人生苦短,我选Python 引言 前文传送门 小白学 Python(1):开篇 接触一门新的语言,肯定要先了解它的基础数据类型.啥?你问我为啥要先了解基础数据类型? 为了你的生命安全,还是乖乖听我 B ...

  5. 小白学 Python(3):基础数据类型(下)

    人生苦短,我选Python 引言 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 前面我们介绍过了数字,本篇我们接着聊另一个常用的基础数据类型:字符串. ...

  6. 小白学 Python(16):基础数据类型(函数)(上)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  7. 小白学 Python(17):基础数据类型(函数)(下)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

  8. 一起学Python——数据类型详解

    和学习其他编程语言一样,首先要了解一门语言的数据类型. Python的数据类型有整型.浮点型.字符串.布尔型.日期时间类型.list列表.set集合.tuple元组.dict词典等. 1.整型 就是数 ...

  9. 每天学一点——python基本数据类型

    python基本数据类型 字符串类型(str) 字符串类型的数据一定是描述性质的,且由引号括起来的数据都是字符串数据(单引号.双引号.三引号.) 如下图 (简单易懂) 这里列举一些不明所以的问题 如图 ...

随机推荐

  1. Ceph学习笔记(4)- OSD

    前言 OSD是一个抽象的概念,对应一个本地块设备(一块盘或一个raid组) 传统NAS和SAN存储是赋予底层物理磁盘一些CPU.内存等,使其成为一个对象存储设备(OSD),可以独立进行磁盘空间分配.I ...

  2. VMware 15.5虚拟机安装群晖NAS

     一.群晖nas简介 NAS(Network Attached Storage:网络附属存储),按字面意思理解其实就是网络存储器,可以理解为存储资料的网盘,云盘.NAS本身支持多种协议(如NFS.CI ...

  3. 01-css3之过渡

    一.介绍 过渡(transition)是CSS3中具有颠覆性的特征之一,我们可以在不使用 Flash 动画或 JavaScript 的情况下,当元素从一种样式变换为另一种样式时为元素添加效果,经常和 ...

  4. ASP.NET Core中的Action的返回值类型

    在Asp.net Core之前所有的Action返回值都是ActionResult,Json(),File()等方法返回的都是ActionResult的子类.并且Core把MVC跟WebApi合并之后 ...

  5. 如何使用python在短时间内寻找完数

    完数:完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数.它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身.如果一个数恰好等于它的因子之和,则称该数 ...

  6. Java匹马行天下之JavaSE核心技术——异常处理

    Java匹马行天下之JavaSE核心技术——异常处理 异常的简介 在Java中,异常就是Java在编译.运行或运行过程中出现的错误. 程序错误分为三种:编译错误.运行时错误和逻辑错误 编译错误是因为程 ...

  7. G - Greg and Array CodeForces - 296C 差分+线段树

    题目大意:输入n,m,k.n个数,m个区间更新标记为1~m.n次操作,每次操作有两个数x,y表示执行第x~y个区间更新. 题解:通过差分来表示某个区间更新操作执行的次数.然后用线段树来更新区间. #i ...

  8. G. 平行线

    单点时限: 2.0 sec 内存限制: 512 MB “大猩猩为什么不喜欢平行线?”“因为平行线没有相交”哈哈哈哈哈哈哈哈哈 为了管理动物园不听话的大猩猩们,动物管理员Boctorio 决定去远方的A ...

  9. 运行一个nodejs服务,先发布为deployment,然后创建service,让集群外可以访问

    问题来源 海口-老男人 17:42:43 就是我要运行一个nodejs服务,先发布为deployment,然后创建service,让集群外可以访问 旧报纸 17:43:35 也就是 你的需求为 一个a ...

  10. DOS事件

    1 onblur 失去焦点 2 onchange   改变 3 onkeyup      按键弹起 4 onmouse over 鼠标移上去 5 onmouse leave   鼠标离开 6 onmo ...