# 明解Python
本书图文并茂、示例丰富，采用全彩印刷方式，通过299段代码和165幅图表，系统地讲解了Python的基础语法和编程知识，内容涉及分支/循环语句、对象、字符串、列表、集合、函数、类、模块、异常处理和文件处理等。针对初学人士难以理解和容易误解的地方，本书均采用平实的语言，辅以精心设计的版式，循序渐进、清晰直观地进行了讲解。跟随本书的讲解，读者可以扎实掌握Python的基础知识，并具备实际使用Python进行编程的能力。 ...

2024年10月14日10分钟阅读

- Personal/Book
- Read/计算机-编程设计

## 简介

- 书名：《明解Python》
- 作者： 柴田望洋
- 分类： 计算机-编程设计
- ISBN：9787115583765
- 出版社：人民邮电出版社

## 概述

本书图文并茂、示例丰富，采用全彩印刷方式，通过299段代码和165幅图表，系统地讲解了Python的基础语法和编程知识，内容涉及分支/循环语句、对象、字符串、列表、集合、函数、类、模块、异常处理和文件处理等。针对初学人士难以理解和容易误解的地方，本书均采用平实的语言，辅以精心设计的版式，循序渐进、清晰直观地进行了讲解。跟随本书的讲解，读者可以扎实掌握Python的基础知识，并具备实际使用Python进行编程的能力。

## 划线

> 编程语言各自有擅长的领域，有的擅长数值计算，有的擅长数据库和事务处理。

> 从这方面来说，Python 可以说是一个“全能型选手”。

> 有两个操作数的运算符称为二元运算符(binary operator)。除了二元运算符，还有存在3个操作数的运算符—— 三元运算符(trinary operator)，以及只有1个操作数的一元运算符(unary operator)。试着使用我们平时计算常用的一元运算符+和-（例1-5）。

> 另外，Python的float型相当于C语言和Java的double型（而非float型）。Python没有double型。

> Python从版本3.6起可以在数值字面量字符间的任意位置插入下划线“_”（实际上Python程序会忽略下划线）（例1-8）。这样可以让位数较多的数值更易于阅读。

> '''和"""能以程序代码中的字符串为基础，生成类似于用户手册的程序文档。Python使用"""形式的字符串字面量来生成这种程序文档。

> 以r或R开头的字符串字面量叫作原始字符串字面量(raw string literal)。原始字符串字面量中的转义字符按照原本含义解释。

> 但是，变量的类型并不是固定的。试着输入例1-17中的代码确认一下结果。[插图]变量x先后“变身”为整数int型、浮点数float型和字符串str型。

> 前面讲的变量名都只有1个字符。关于变量名，其实并不是任意名称都可以使用。命名规则大致如下。·可使用的字符包括字母、数字和下划线。·字母区分大小写。·数字不能放在变量名开头。

> 交互式shell最后显示的值可以用变量“_”来表示。该变量在运算结果需要用于下次运算时非常有用。

> ·作为一种迅速普及的脚本语言，Python支持多种编程范式，包括命令式编程、过程式编程、函数式编程和面向对象编程。

> 在Python中，变量、函数、类和模块皆为对象。·对象会占一定的存储空间（内存），并且拥有标识值（用于判断是否为同一个对象）、类型和值等属性。可以使用id函数获取标识值，使用type函数获取类型。·变量只是一个和对象绑定（引用对象）的名字。·is运算符和is not运算符是身份运算符，用于判断对象是否为同一个（标识值是否相等）。在Python中，根据值是否可以改变，类型可分为两类。·可变类型：　列表、字典、集合等　　　　　※值可以改变。·不可变类型：数字、字符串、元组等　　　　※值不可以改变。如果对不可变类型的变量（引用的对象）的值进行变更，则会生成新的对象，然后变量重新引用新的对象。赋值语句复制的是对象的引用而不是值。另外，赋值的对象，即等号左边的变量名如果是首次使用，程序则生成新的变量并与等号右边的对象进行绑定。[插图]与赋值语句相对应的是del语句，它用于删除作为名字的变量名。·None与任何对象都不同，是NoneType类型的特殊值。·其他编程语言使用存储期（存储空间生命周期）对变量和对象进行管理。Python与之不同，它使用引用计数，即引用对象的变量的个数，对变量和对象进行管理。·内置类型包括数值型（int型、bool型、float型和complex型）、序列型（str型、list型和tuple型等）、集合型（set型、frozenset型）和映射型（dict型）。·浮点型（float型）可以表示的值在大小和精度方面存在限制。使用sys.float_info可以查看浮点型的属性。·在进行算术运算时，程序会根据操作数的类型进行算术转换。·复数型是用表示实数部分和虚数部分的两个浮点数来表示值的类型。例如3.2 +5.7j。其中，5.7j称为虚数字面量。·因为在计算机内部，数值用位的ON/OFF来表示，所以Python可以轻易地表示二进制数。Python提供了求逻辑与的运算符&、求逻辑或的运算符|、求逻辑异或的运算符^和生成取反后的值的运算符~等按位逻辑运算符。[插图]位移运算符<<和>>将整数中的所有的位向左或向右移动后生成相应的值。[插图]

> 不包含扩展名的文件名被直接当作模块名使用。

> 两个程序必须放在同一个文件夹中。

> 脚本文件：·直接执行时　变量__name__等于’main’·导入时　　　变量__name__等于原本的模块名（在上述程序中是min_max）

> 如果用作包的文件夹内放置了名为’init.py’的文件，那么具备这种标准结构的包就称为标准包(regular package)。

> 文件’init.py’用于告知Python程序当前的包是标准包。如果没有该文件，程序就无法识别出标准包（代码清单10-10也将无法执行）。·程序导入包后会初始化并执行模块’init.py’。因此，我们也会看见在模块’init.py’中插入（下一章讲解的）类定义这样的编程技巧。·在’init.py’中，如果将名称__all__定义为一个列表，其中包含对象名称的字符串，程序就可以通过*的形式导入该名称的对象。例如，在文件夹pack内的文件’init.py’中编写定义__all__ = [‘abc’, ‘xyz’]，程序就可以通过from pack import *导入pack.abc和pack.xyz。

> 脚本程序是模块，不包含扩展名的文件名是模块名。模块是较大的代码块。·模块是一种对象，又称模块对象。在直接执行模块对象或导入模块对象时会生成并初始化模块对象。在直接执行脚本程序时，__name__的值是’main’。当其他脚本程序导入脚本程序时，__name__的值是模块名。

> 异常处理的优点之一是可以分离原本的处理代码和处理错误的代码。

> [插图]

## 笔记

> 要点　变量就像一个箱子，用来存储整数、浮点数和字符串等值。把相应的值放入变量后，可以随时取出。

💭 Python 称为标志也许更合适

## 书评

## 点评