返回介绍

第5章 数字

发布于 2024-01-29 22:24:17 字数 2347 浏览 0 评论 0 收藏 0

本章我们将开始更深入的Python语言之旅。在Python中,数据采用了对象的形式——无论是Python所提供的内置对象,还是使用Python的工具和像C这样的其他语言所创建的对象。事实上,编写的所有Python程序的基础就是对象。因为对象是Python编程中的最基本的概念,也是本书第一个关注的焦点。

在上一章,我们对Python的核心对象进行了概览。尽管该章已经介绍了最核心的术语,但是由于篇幅有限,没有涉及过多的细节。本章将开始对数据类型概念进行更详尽的学习。本章将会探索与数字相关的类型,例如,集合和布尔型。让我们开始探索第一个数据类型的分类:Python的数字类型。

Python的数字类型

Python的数字类型是相当典型的,如果你有其他语言的编程经验的话,也许会很熟悉。它能够保持记录你的银行余额、到火星的距离、访问网站的人数以及任何其他的数字特性。

在Python中,数字并不是一个真正的对象类型,而是一组类似类型的分类。Python不仅支持通常的数字类型(整数和浮点数),而且能够通过常量去直接创建数字以及处理数字的表达式。此外,Python为更高级的工作提供了很多高级数字编程支持和对象。Python数字类型的完整工具包括:

·整数和浮点数

·复数

·固定精度的十进制数

·有理分数

·集合

·布尔类型

·无穷的整数精度

·各种数字内置函数和模块

本章从基本的数字开始,然后介绍这个列表中的其他工具。然而,在开始介绍编程之前,下面两个小节首先概述一下如何在脚本中编写和处理数字。

数字常量

在基本类型中,Python提供了:整数(正整数和负整数)和浮点数(带有小数部分的数字)。Python还允许我们使用十六进制、八进制和二进制常量来表示整数,提供一个复数类型,并且允许整数具有无穷的精度(只要内存空间允许,它可以增长成任意位数的数字)。表5-1展示了Python数字类型在程序中的显示方式(作为常量)。

一般来说,Python的数字类型是很容易使用的,但是有些编程的概念需要在这里强调一下。

整数和浮点数常量

整数以十进制数字的字符串写法出现。浮点数带一个小数点,也可以加上一个科学计数标志e或者E。如果编写一个带有小数点或幂的数字,Python会将它变成一个浮点数对象,并且当这个对象用在表达式中时,将启用浮点数(而不是整数)的运算法则。浮点数就像C语言中的“双精度”一样实现,因此,其精度与用来构建Python解释器的C编译器所给定的双精度一样。

Python 2.6中的整数:一般整数和长整数

Python 2.6中有两种整数类型:一般整数(32位)和长整数(无穷精度),并且一个整数可以以l或L结尾,从而强迫其成为长整数。由于当整数的值超过32位的时候会自动转换为长整数,我们不需要自己输入字母L,当需要额外的精度的时候,Python会自动地转换为长整数。

Python 3.0中的整数:一个单独的类型

在Python 3.0中,一般整数和长整数类型已经合二为一了,只有整数这一种,它自动地支持Python 2.6的单独的长整数类型所拥有的无穷精度。因此,整数在程序中不再用末尾的l或L表示,并且整数也不再会显示出这个字符。除此之外,这一修改并没有影响到大多数程序,除非你确实进行类型测试来检测Python 2.6的长整数。

十六进制数、八进制和二进制常量

整数可以编写为十进制(以10为基数)、十六进制(以16为基数)、八进制(以8为基数)和二进制(以2为基数)形式。十六进制数以0x或0X开头,后面接十六进制的数字0~9和A~F。十六进制的数字编写成大写或小写都可以。八进制数常量以数字0o或0O开头(0和小写或大写的字母"o"),后面接着数字0~7构成的字符串。在Python 2.6及更早的版本中,八进制常量也可以写成前面只有一个0的形式,但在Python 3.0中不能这样(这种最初的八进制形式太容易与十进制数混淆,因此用新的0o的形式替代了)。Python 2.6和Python 3.0中的新的二进制常量,以0b或0B开头,后面跟着二进制数字(0~1)。

注意所有这些常量在程序代码中都产生一个整数对象,它们仅仅是特定值的不同语法表示而已。内置函数hex(I)、oct(I)和bin(I)把一个整数转换为这3种进制表示的字符串,并且int(str,base)根据每个给定的进制把一个运行时字符串转换为一个整数。

复数

Python的复数常量写成实部+虚部的写法,这里虚部是以j或J结尾。其中,实部从技术上讲可有可无,所以可能会单独表示虚部。从内部看来,复数都是通过一对浮点数来表示的,但是对复数的所有的数字操作都会按照复数的运算法则进行。也可以通过内置函数complex(real,imag)来创建复数。

编写其他的数字类型

我们将在本章后面看到,还有表5-1中所没有包含的其他的、更高级的数字类型。其中的一些通过调用导入的模块中的函数来创建(例如,十进制数和分数),其他的一些拥有它们自己的常量语法(例如,集合)。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文