首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

数——万物之始:整数int、浮点数float与复数complex

经过上几期的的介绍,相信大家已经准备好上车了吧?好,我们马上开始 Python 之旅吧!这期我们主要会用到 IDLE 的交互界面,就是有箭头的那个,文中显示的代码,和你的交互界面应该是一致的。

表示数的数据类型——整数、浮点数、复数

我们先从整数这个数据类型入手。整数(integer)就是像 -3、-2、-1、0、1、2、3、10 这样的数。以下代码将变量 赋值为整数 。

在 Python 中,一切都是对象,整数也不例外。什么是对象?哈哈,具体我们会在后面解释。

在这里,我们可以把 视为一张标签纸,贴在了整数对象 的上面。

那么如果我写以下的代码

最后 是什么?可以取出来看下:

是 。这个情景可以想象为,把 这个标签从整数 上面取下来,然后贴到 上面。我们把 这类东西叫做变量(variables)

第一个异常

再问,如果我想知道有没有 ,那怎么办呢?取出来看下吧。

看到系统返回了一堆红字。它们叫异常(Exception),系统的这个行为叫抛出异常(raise Exception)。这是在告诉你,你的代码错了哦。错在哪?英文有提示。

是异常的名字,它可是有大用处哦,在错误处理中十分重要,在此先卖个关子哈。 是异常的具体内容,系统是在说,你还没有告诉我 boy 这个标签贴的是啥呢。

我们可以用以下的代码告诉系统。

这时,系统就知道了, 是浮点数 。也就是说,你要先告诉系统, 是 ,系统才不会抛出异常。

的使用

《西游记》中记载了一种法宝,名叫照妖镜,能照出一只妖怪的真身。

而Python中也有这样一种法宝:

用他来看 和 的真身,会发现一个是 ,一个是 。这就是他们的类型啦。

我们知道,就是整数 integer 的缩写。

那 呢?就是浮点数的意思,因其小数点可以左右漂浮,从而表示更大或更小的数而得名。在更古老的编程语言里,除了 、 两种表示实数的类型外,还有 long、long long、short、double、long double等等。不过,Python 的设计者 Guido van Rossum 等人为了简化概念,硬是把这些乱七八糟的数据类型合成了两种。

当然,Python 还可以使用复数

不过日常编程比较少使用这个数据类型。

数的基础运算

有了整数和浮点数两种数据类型,我们就可以把 Python 当计算器用啦。

这里要注意 这个除法运算。在 Python 2.x 中,如果我们这样打,会出现以下的结果。

不要以为系统抽风了, 的确等于 哦。为什么?因为商的整数部分就是 啊!

商 2 余 1。Python 2.x 实施的是int / int = int,所以得出来的结果就是 。要使用 Python 3.x 接近人类理解的除法,可以这样:

如果商和余数都想要呢?一个办法是使用 (地板除 floordiv) 运算和 (求余/求模 modulus)运算。现在我们返回 Python 3.x。

另外一种就是 函数啦。将被除数和除数用半角逗号隔开,放在括号内,其实这是给 函数传递了两个参数。关于函数的参数,会在以后的某个分享中谈及。

咦,可是我明明没有定义 函数和 函数啊,为什么这里能用的?因为这两个是Python的内置函数(built-in functions),当我们使用 Python 时,系统就会把内置函数都加载好,直接调用就可以了。

Python 的内置函数有许多,一下子是说不过来的。小叮当会在以后的分享中逐渐提到~

回到运算符。

还有一种运算是幂运算(power)

在多个运算符同时出现的时候,运算符的运算顺序与数学一致(中括号、大括号都用小括号代替)

此外, 库有这些运算符的对应函数。

注意这里用 或 的时候, 被转化成了 。

以类型(如整数 、浮点数 )命名的内置函数有时也叫工厂函数,因为函数的调用过程就像输入原料,产出产品一样。

import是什么?

咦,是什么意思呢?我们可以理解为,有人已经XXX.py里写好了YYY。XXX.py存在于我们之前所设的环境变量目录以及此py文件所在的目录下。YYY可以是函数变量和我们以后会接触到的。然后我们把它拿来用。后面的代表YYY文件下定义的所有东西。当然啦,如果我们只用到,也可以写呢,关于 ,我们以后也会详细解释哦~

增量赋值运算符(augmented assignment operator)

Python 有一种运算符,能在运算的同时给自己赋值。

这和以下的代码是一样的

有些同学可能会问,第二段的第二句的两个 是什么意思?这里我们分两步理解:

第一步:因为 ,所以 等于 ;

第二步;把这个 通过赋值运算符 =,用一个变量 贴在它上面,现在 等于 。

所以,等号左边的 是新的 ,右边的 是旧的 。

执行+=操作时,也是这样分步运算的。所以以下代码会出错

错误在于,在赋值的时候出现了 这样的语句。 并不是变量,而是一个整数对象。所以不能给它赋值~

当然了, 还有一大堆好朋友。

嗯…… 和 的意义不太一样呢。而且 i 开头的函数要赋值回 a ,感觉它们……没啥用,还是用符号来得快捷。

增量赋值运算符似乎是无法连续调用的,因此不存在顺序的问题。

0.1 + 0.2 != 0.3

有没有发现,小叮当从头到尾都不敢用 演示运算?因为这里有个坑!

What? ?是眼睛瞎了吗?不!你没瞎! 的确不等于 !在解答这个问题之前。我们先来看几种特别的数。(其实小叮当并不打算在本期解决这个问题,因为这个问题涉及的东西实在太多!先看看下面两种数,与这个问题有千丝万缕的关系~)

科学记数法

不知道大家还记不记得初中时学过的科学记数法?比如 这个整数,可以表示为 ,读作 1 乘 10 的 2 次方。其中 10 的 n 次幂又可以用 或 来表示。所以,

科学计数法表示出来的数都是浮点数类型 。

二进制、八进制、十六进制

可以看到,Python 使用 来表示二进制,数里的每一位代表 2 的 n 次幂,比如 这个二进制数字,就表示成

因为 0 乘任何数得 0,所以简化成:

同理,Python 表示八进制和十六进制的数是这样的:

所谓八进制,就是逢八进一,所以在数字表里是没有 8 这个数的,Python 使用 来表示八进制

十六进制的数,1-9 往上就用 (大小写均可)来表示了, 代表 15,数字表里没有 g 这个数。Python 使用 0x 来表示十六进制。

二进制、八进制、十六进制的数都是整数类型 。

那么,如果我想把十进制数字转成其他进制,应该怎么做呢?答案是使用 函数。

就是 binary, 就是 octal, 就是 hexidecimal。学好英文是不是很重要!!

另外一种方法,是给 函数传入第二个参数 ……

注意第一个参数一定要用单引号或双引号括起来,其实这是字符串类型的表达方法。第二个参数 ,就是转换的进制啦。可以使用 、、等标识符,但是,如果将本属于一个进制的标识符用到另外一个进制身上,就会报错啦~ 这种传递参数的方式,叫关键字参数,在细讲函数的时候会说到。

呼~讲了好多哦……先这样吧。下期,我们再来看十进制小数转化成二进制和 的问题。

本期涉及的内容有:

数的数据类型:、浮点数、复数

变量

赋值

运算符及其运算顺序

增量赋值运算符

科学记数法

二进制、八进制、十六进制

稍微提及的内容有:

异常

内置函数

工厂函数 、

关键字参数

字符串类型

快找找这些概念你是否明白了呢?好啦,下次再见啦!

References:

[1] L. Ramalho, Fluent Python, Sebastopol, U.S.: O’Reilly Media, Inc., 2015.

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180210G01AWT00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券