《Python 3程序开发指南(第2版•修订版)》——2.6 总结

2.6 总结

本章首先展示了Python的关键字列表,并描述了Python标识符的命名原则。由于Python对Unicode的支持,因此Python标识符不局限于来自小字符集(比如ASCII或Latin-1)的子集。

我们也描述了Python的int数据类型,该类型与大多数其他语言中的类似类型有所差别,因为其没有内在的大小限制。Python整数的大小取决于内存可以允许的最大数字,操纵由数百个数字组成的数字也是完全可行的。Python大多数基本类型都是固定的,但是实际上很少会有真正的影响,因为借助于增强的赋值操作符(+=、*=、-=、/=以及其他),我们可以使用非常自然的语法,而在幕后,Python会创建结果对象并将变量重新绑定到其上。整数字面值通常写为十进制数,但也可以使用0b为前缀写为二进制字面值、使用0o为前缀写为八进制字面值、使用0x为前缀写为十六进制字面值。

在使用/对两个整数进行除法操作时,所得结果总是一个浮点数,这与很多广泛使用的其他语言是不同的,但有助于避免在除法操作进行削减时某些微妙的bug。(如果需要整数除法,可以使用//操作符。)

Python有一种bool数据类型,其中可以存放True或False。Python提供了3个逻辑操作符:and、or、not。其中,两个二元操作符(and与or)使用的是short-circuit逻辑。

Python中有3种可用的浮点数:float、complex与decimal.Decimal。最常用的是float,这是一个双精度的浮点数,其准确的数值型特征依赖于Python构建是使用的底层C、C#或Java库。复数使用两个浮点数表示,一个存放的是实数部分,另一个存放的是虚数部分。decimal.Decimal类型是由decimal模块提供的,这种数字默认小数点后有28位的精度,但可以根据需要增加或减少。

所有三种浮点类型都可用于适当的内置的数学操作符与函数。此外,math模块提供了各种三角函数、双曲线函数与对数函数,可用于处理浮点数;cmath模块提供了类似的函数集,可用于处理复数。

本章大部分内容都针对的是字符串。Python的字符串字面值可以使用单引号或双引号创建,或使用三引号包含的字符串(如果需要在其中包含换行与引号,不拘形式)。各种转义序列可用于插入特殊字符,比如制表符(\t)与换行(\n),也可以插入Unicode字符(使用十六进制转义与Unicode字符名)。虽然字符串也支持其他Python类型的相同的比较操作符,但是我们也注意到,包含非英语字符的字符串排序时容易出现问题。

由于字符串是序列,因此,通过简单但强大的语法,分片操作符([])也可以用于字符串分片与步距。字符串也可以使用+操作符连接,使用操作符复制,我们也可以使用这两个操作符的增强赋值版本(+=与=)(尽管str.join()方法更常用于连接)。字符串有很多方法,包括有些用于测试字符串属性的(比如str.isspace()与str.isalpha()),有些用于改变字母大小写的(比如str.lower()与str.title()),有些用于搜索的(比如str.find()与str.index()),还有很多其他方法。

Python对字符串的支持是非常优秀的,使得我们可以方便地搜索、提取、比较整个字符串或部分字符串,替换字符或字符串,或者将字符串分割为子字符串列表,或者将字符串列表连接为一个单一的字符串。

或许功能最丰富的字符串方法是str.format(),该方法用于使用替换字段与变量来创建字符串,并使用格式化规约来精确地定义每个字段(将被某个值替代)的特性。替换字段名称语法允许我们使用位置参数或名称(用于关键字参数)来存取方法的参数,也可以使用索引、键或属性名来存取参数项或属性。格式化规约允许我们制定填充字符、对齐方式以及最小字段宽度。而且,对于数字,我们可以控制其符号的输出方式;对于浮点数,我们可以指定小数点后的数字个数,以及使用标准表示还是指数表示。

我们也讨论了字符编码的复杂问题。默认情况下,Python的.py文件使用Unicode UTF-8编码,因此可以包含注释、标识符以及数字(可以以任何人类语言写入)。使用str.encode()方法,可以将字符串转换为使用特定编码表示的字节序列。当前使用的字符编码的广泛性有时会带来不便,但是UTF-8正在迅速成为普通文本文件的事实上的标准(也已成为XML文件的默认编码),因此,这种不便在将来会逐渐消减。

除了本章讲述的数据类型之外,Python还提供了两种内置的数据类型,即bytes与bytearray,两者都将在第7章讲述。Python还提供了几种组合数据类型,有些是内置的,有些是来自标准库的。在下一章中,我们将了解Python最重要的几种组合数据类型。

时间: 2024-10-26 11:11:34

《Python 3程序开发指南(第2版•修订版)》——2.6 总结的相关文章

《HTML5触摸界面设计与开发》——2.3 奠定基础的 < head >标签

2.3 奠定基础的 < head >标签 HTML5触摸界面设计与开发 代码清单2.2展示了加州鸟类网站的head标签 http-equiv 元信息 http-equiv 元信息告诉浏览器如何去做,等效于设置了HTTP 报头.这让你可以向浏览器传达一些原本由服务器告诉它的内容.当你不能控制服务器时,它特别有用.例如,如果你想设置一个缓存头,但又不能控制服务器,你可以使用http-equiv属性: <meta http-equiv="expires" content=&

《HTML5触摸界面设计与开发》——2.6 总结

2.6 总结 HTML5触摸界面设计与开发 在本章中,你学会了如何使用媒体查询来创建样式的分界点.你还学习了viewport 元信息和虚拟像素.请记

《HTML5触摸界面设计与开发》——导读

前言在我写作时, 11.42%的网页流量来自移动设备.这个数字一年前是7%,三年之前是1.77%.虽然桌面设备还会陪伴我们一段时间,但是Web的未来是在移动设备上的.对于Web开发者,支持移动设备是自21世纪初的Web标准革命以来最大的变革.移动设备都搭载了支持HTML5的现代浏览器.它们还装有容量较小的内存和缓慢的CPU,经常通过高延迟的网络来连接.而且它们几乎全都有触摸界面. 为移动设备开发就是为触摸开发.许多桌面Web开发中的技巧对于移动Web依然适用,不过有些却是完全不同-弄清楚这些不同

《HTML5触摸界面设计与开发》——1.4 神秘谷,是什么让触摸界面反应灵敏?

1.4 神秘谷,是什么让触摸界面反应灵敏? 我有个两岁半的儿子.他从一岁开始就能解锁iPad并找到他想要的应用程序.他还不会说话,就会解锁iPad.我与其他家长交流意见,发现并不是因为我的儿子智商超群.触摸界面给了孩子们直观的感受:触摸和移动东西,是人类做的最基本的事情之一.触摸界面直观又强大.但它也很容易令人失望. 有一个理论在机器人学里被称为"神秘谷":机器人看上去越像人,就越对我们有吸引力,但当机器人的外形快要逼近真人的时候,会让我们觉得很奇怪,甚至被吓得毛骨悚然."谷

《HTML5触摸界面设计与开发》——1.3 HTML5

1.3 HTML5 所有移动浏览器所共有的,为支持先进浏览器而存在的功能,被统称为HTML5.那究竟什么是HTML5? 严格地说,HTML5是指网页超文本技术工作小组(WHATWG)规定的标记语言和API集合.它通过定义能满足网络应用需求的功能,取代了HTML4,在HTML5提出伊始,就已经超越了HTML最初以文档为中心的模型. 实践中,HTML5已经成为一套标准化技术和新兴技术的代名词.这个新兴技术极大地拓展了传统的"Web堆栈"(HTML,CSS和JavaScript). 1.3.

《HTML5触摸界面设计与开发》——2.4 理解 Viewport

2.4 理解 Viewport 在iPhone诞生之前,手机浏览器尝试通过调整内容来适应网页,取得了不同程度的成功.iPhone上的Safari没有做丝毫的尝试,取而代之的是在各种各样的虚拟窗口上展现网页,这些虚拟窗口被称为"视图".用户可以通过放大来查看网页的部分内容或通过缩小来查看网页的全部内容. 为了给开发者提供一定程度的展现页面的控制权,苹果公司提供了viewport的元信息(meta)元素,它可以指定虚拟窗口大小.它改变了网站建设的很多方面.理解viewport是成功建设移动

《HTML5触摸界面设计与开发》——1.2 广泛使用的设备

1.2 广泛使用的设备 在2007年,iPhone刚出现时,没有任何一部其他的手机拥有真正能触摸感知的Web浏览器.也没有任何支持多点触摸的设备.其他的智能手机大多数使用手写笔进行交互,当时市场上的几种平板电脑也是一样.今天,市面上流通的有数百种触摸设备.我们不可能了解每一种新设备,不过它们可以根据操作系统.规格.搭载的Web浏览器将它们分为几类. 1.2.1 操作系统 如今市场上有四种主要的操作系统适用于触摸设备: iOS Blackberry OS Android Windows 8 And

《HTML5触摸界面设计与开发》——1.5 总结

1.5 总结 触摸设备总体上在不断变化,大部分Web浏览器之间的差异是很小的.虽然在性能上的差异较大,但只用HTML5就足以在触摸设备上做出优秀的用户界面. 鉴于触摸设备的性质,速度快是至关重要的.为了让它看起来更快,最重要的是要及时反馈用户.

《HTML5触摸界面设计与开发》——2.2 创建标记

2.2 创建标记 对于这个网站,我们会用"移动置后"的方案来编写,但我们会在移动版和桌面版上使用相同的标记.我们将专注于语义标记,因为网站需要在移动设备上工作,所以我们还得考虑DOM和CSS的性能. 注: "移动置后"的缺点之一是移动设备需要下载和解析所有的桌面样式.如果采用"移动优先",那么移动设备可以安全地忽略那些不需要的样式.另外,这是一个需要逐一分析的问题.为一个文档创建标记时,我把它分成区域,这样不仅有合理的语义,而且在设计和添加样式时

java-web开发,jsp界面设计出错

问题描述 web开发,jsp界面设计出错 <%@ page language="java" pageEncoding="gbk"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+