爸爸教我学Python编程-第14课-数据的类型之改变类型-少儿编程教育网

我们已经看到,至少可以为一个变量赋3种不同类型的值(保存在计算机内存中):整数、浮点数和字符串。Python还有其他一些数据类型,后面将会学到,不过对现在来说,这3个类型就足够了,这一章中,我们将学习怎样区分一个值究竟是什么类型。还会了解如何由一个类型建立另一个类型。

很多情况下,我们需要将数据从一种类型转换成另一种类型,例如,想要打印一个数字时,就需要把它转换成文本,使它能够出现在屏幕上。Python的print命令可以为我们实现这点。不过,有时我们只是想转换而不需要打印出来,或者需要从字符串转换成数字(这是print无法做到的)。这称为类型转换(type conversion)。这该如何做到呢?

Python实际上并没有把一个东西从一种类型“转换”成另一种类型。它只是由原来的东西创建一个新东西,而且这个新东西正是你想要的类型。下面给出一些函数,它们可以把数据从一种类型转换为另一种类型。

float()从一个字符串或整数创建一个新的浮点数(小数)

int()从一个字符或浮点数创建一个新的整数

str()从一个数(可以是任何其他类型)创建一个新的字符串。

float()、int()和str()后面有小括号,因为它们不是Python关键字(如print)---它们只是Python的内置函数(function)

后面我们还会学习更多有关函数的内容,现在只需要知道,可以把你想要转换的值放在函数后面的小括号里,要说明这一点,最好的办法就是举一些例子,在IDLE shell 中,采用交互模式完成下面的例子。

将整数转换为浮点数

下面先从整数开始,由它创建一个新的浮点数(小数),这里要使用float():

  >>>a=24

>>>b=float(a)

>>>a

>>>b

24.0

注意b得到一个小数,末尾有一个0.这就是告诉我们这是一个浮点数而不是整数。变量a保持不变,因为float()不会改变原来的值---它只是创建一个新的值。

要记住,在交互模式中,可以直接键入变量(而不需要使用print),Python会显示这个变量的值(这在第2章中曾经见过)不过这只在交互模式中奏效,在程序中是行不通的。

将浮点数转换为整数

下面再反过来试试,从一个小数用int()创建一个整数

  >>>c=38.0

>>>d=int(c)

>>>c

38.0

>>>d

38

我们创建了一个新的整数d,这是c的整数部分。

爸爸教我学Python编程-第14课-数据的类型之改变类型-少儿编程教育网

是吗?怎么会发生这种事情?Carter,我想肯定是你的计算机发疯了!

当然这只是开玩笑。实际上,这个问题有一个解释,你可以看看下面的“到底怎么回事?”

爸爸教我学Python编程-第14课-数据的类型之改变类型-少儿编程教育网

下面再试试另一个转换:

  >>>e=54.99

  >>>f=int(e)

  >>>print e

  54.99

  >>>print f

  54

尽管54.99与55很接近,但是得到的整数仍然是54.int()函数总是下取整。它不会给你最接近的整数,而是会给出下一下最小的整数,实际上int()函数就是去掉小数部分。

如果想得到最接近的整数,也有一个办法,这个办法到第21章再告诉你。

将字符串转换为浮点数

还可以从字符串创建一个数,就像这样:

  >>>a=‘76.3’

>>>b=float(a)

>>>a

‘76.3’

>>>b

76.299999999999997

注意,显示a时,结果两边有引号。Python通过这种方式告诉我们a是一个字符串,显示b时,会得到浮点数值,这里包括所有小数位(就是Carter之前做的一样)。