需要使用template标签,然后给该标签指定一个name属性。接着就可以在该标签内写入一些代码片段。
3.3.2 标准库的数学模块 Python 的发明者吉多·范罗苏姆说:Python 有“自带电池”的理念,从它的庞大软件包复杂而又可靠的能力中可见端倪(英文:Python has a "batteries 所谓“自带电池”就是指 Python 标准库(Python Standard Library,官方文档地址是 https://docs.python.org/3/library/index.html), 标准库的有关程序在安装本地 Python 开发环境时已经随之安装好,与内置函数类似,也能“开箱即用”。 Python 标准库非常庞大,此处仅介绍与初等数学计算相关的模块(更多内容,参阅第11章11.3节)。 >>> a Fraction(1, 3) >>> a + 2 Fraction(7, 3) >>> a + 0.5 0.8333333333333333 >>> a ** 2 Fraction(1, 9)
4.2 字符串 顾名思义,“字符串”就是由一个或多个字符“串”起来—— Python 3.x 中的才是真正字符串,Python 2.x 中的严格称呼应为“字节串”。不过,现在读者暂不用关注历史。 在 Python 中创建字符串的方法非常简单。 >>> s = 'python' # (3) >>> book = "learn python" # (4) >>> poem = """我住长江头, ... >>> "I am learning Python' File "<stdin>", line 1 "I am learning Python' module> ValueError: invalid literal for int() with base 10: '1e2' 注意上面的报错信息,对于 int() 函数而言,其参数必须是 0 到 9
Python 语言中关于字符串切片的一般操作形式如图4-2-5所示——这种形式适用于所有的序列类对象。 以注释(21)的切片为例,得到了字符串 'python book' 的部分字符组成的字符串——就如同从原来字符串上“切”下来“片段”一样,故曰“切片”。 图4-2-6 字符串切片示意 从结果中可以看出,结束索引 8 所对应的字符没有在“被切”之列,这是 Python 中的普遍规则,为了便于记忆,可以概括为“前包括,后不包括”。 如果切片开始的索引是 0 ,可以不写该索引: >>> book[: 8] 'python b' >>> book[0: 8] 'python b' 如果切片结束的索引是字符串的最后一个,例如图4-2- 注释(24)中切片结束的索引已经超过了字符串的最大索引值,但是 Python 语言允许这种操作,并按照注释(23)的方式处理——book[11] 是不允许的,详见4.2.4节。
★本文是《Python 完全自学教程》第3章第5节内容。 在 Python 中也能定义复数,但表示虚数单位的字母与数学中的习惯有别。 Python 中的复数与前面所学习的浮点数、整数都是一种对象类型。 如果创建只有一个虚数单位的复数,即数学上的 i ,不能这样做(这是什么原因? >>> complex(3, 4) (3+4j) >>> complex(0, 0) 0j 复数、浮点数、整数,在数学上,它们能够依据算术运算的法则进行运算,在 Python 中也一样。 若要对复数使用初等函数,可以用另外一个名为 cmath 的模块(官方文档:https://docs.python.org/3/library/cmath.html )。
但是 Python 语言中,除了兼顾数学上的“比较”之外,还把事情搞得复杂了一些,且看本节揭示其复杂性。 3.6.1 比较运算符 3.2节学了算术运算符,除此之外,数学中还有“比较运算符”,在 Python 中如何实现? >>> a = 9 # 赋值语句,变量和对象建立引用关系 >>> b = 9.0 >>> a == b True a == b 即比较变量 a 引用的对象与变量 b 引用的对象是否相等。 在3.1.2节业已学习到了 == 的含义,并且同时提到了“相等”并不意味着是“同一个对象”,如上述示例中的整数 9 和浮点数 9.0 。下面要着重要说明的“相等”和“同一”的区别。 于是,Python 提供了一个用于判断对象是否“同一”的关键词 is 。
1.6 Python 官方网站 关于 Python 编程语言最权威的资料当然来自其官方网站,因此,要对该网站有所了解。 网址:python.org 网站首页如图1-6-1所示,先注意观察网站的结构。 只要点击写有“ Python 3.9.4 ”字样的按钮,就可以下载此版本的 Python 安装程序。 /downloads/source/ 网址(图1-6-9为编写本书时页面的部分截图),即可得到各个 Python 版本的源代码下载列表。 图1-6-9 Python 各版本源码 我们要源码有什么用? 对 Python 官方网站有了基本了解之后,就开始尝试在自己的计算机上配置 Python 开发环境。
特别注意,此时第一个字符编号为 0 ,而不是 1 ,这是 Python 语言的规定(很多其他编程语言也这样规定,但是,也有的编程语言规定从 1 开始计数)。 在 Python 中实现这种操作的方式是使用 [ ] 符号。 Python 字符串有一个方法能够实现(关于“方法”,参见4.2.6节)。 在 book.index('o') ,返回的是 book 字符串( 'python book' )中按照从左向右顺序第一个字符 'o' 的索引。 start 和 end 是检索 sub 的索引范围(但不包含 end 所对应字符),比如: >>> book.index('o') 4 >>> book.index('o', 7, 9) 8 >>> book.index
4.4 元组 元组( Tuple )是 Python 内置对象(类型),跟列表很相似,从外表看它们的差别就在于 [ ] 和 ()——列表是用方括号包裹,元组是用圆括号包裹——里面的成员要求完全一样,可以是任何 Python 对象,包括各种内置对象和自定义对象。 = 'laoqi' >>> tlst ['laoqi', 'book', 'python'] >>> t2 = tuple(tlst) >>> t2 ('laoqi', 'book', 'python' 元组可以在字典(一种 Python 内置对象类型,参阅第5章5.1节)中作为键,列表不可以。 所以,元组自有其用武之地,既然已经存在于Python中,必然是合乎理性的——“What is rational is real; And what is real is rational.”
extend() 方法的参数要求传入的对象必须是 iterable——可迭代对象(参阅第9章9.6节)。 下面演示一种方法(事实上还有其他方式,参阅第9章9.6节): >>> s = 'python' >>> hasattr(s, '__iter__') # 注意双下划线 True Python 内置函数 也就是说,__inter__ 是一个对象是否可迭代的标志(参阅第9章9.6节) 用同样的方式可以判断: >>> hasattr([1, 2], '__iter__') True >>> hasattr( >>> university ['Soochow', 'Nanking', 'Hangchow', 'Lingnan'] >>> university.pop() # (9) 'Lingnan' ', 'pascal', 'python'] 对于排序而言,Python中还提供了一个内置函数 sorted() ——请注意拼写。
Python 中的逻辑运算符有 and、or 、not 三个。 再看如下运算: >>> 4 < 3 and 4 < 9 # (3) False 并没有返回 4 < 3 ,而是返回了 False 。 >>> 0 or 1 1 >>> 1 or 2 1 >>> 4 > 3 or 4 > 9 True (3) not not ,翻译成“非”,返回对象的布尔值的相反值,如: >>> not(2) False >>> 4 > 3 and (3 > 9 or 5 < 6) True >>> not(True and True) False 在某些故意刁难人的考试中,有可能让你判断 0 < 0 == 0 的结果 如果把这个式子写入到 Python 交互模式中: >>> 0 < 0 == 0 # (5) False 你猜对了吗?
>>> print('you are learning "Python Book"') you are learning "Python Book" 此外,还有一种解决方法:使用转义符( Escape >>> print("you are learning \"Pthon Book\"") # (9) you are learning "Pthon Book" 注释(8)中第二个“引号”前面增加了反斜杠 注释(9)中则用转义符分别使两个双引号(") 不再具有其单独出现的语义。 此外,还有一种方法: >>> pth = r'c:\new_books\python' # (12) >>> print(pth) c:\new_books\python >>> pth 'c:\ new_books\python' + '\\' # (15) >>> pth 'c:\\new_books\\python\\' >>> print(pth) c:\new_books\python
下面就以此类读者为对象,介绍 Python 中的变量( Variable )。 2.3.1 Python 语言中的变量 image.png 那么,Python 中的变量是什么意思呢? 图2-3-1 变量与对象的关系 Python 的变量除了可以引用数字之外,还可以引用其他任何 Python 对象,读者会随着本书的学习不断理解这句话的含义。 2.3.2 变量命名 在 Python 语言中如果套用数学中变量的命名规则,就会出现2.2节中 a = ["机器学习数学基础", "Python完全自学手册", "数据准备和特征工程"] 这样可读性很差的 在本书中,选择使用“蛇形式”,这也是 Python 中比较流行的命名普通变量的形式( Python,即“蟒蛇”,可能与此有关,图2-3-2为其图标)。 一般不用内置的 Python 函数来命名,这样会导致以后调用该函数的时候无法使用(关于内置函数,参阅第3章3.3.1节)。 不使用 Python 关键词命名。
Python 语言中,也通过多种方式提供了常用的函数——这些函数都已经定义好。 )是本地 Python 环境配置好之后就已经可以使用的函数,不需要单独定义。 打开图3-3-2所示的帮助文档同时,在图3-3-1对应的 Python 官方文档的内置函数列表中,找到 int() 函数,点击该超链接,即打开网址 https://docs.python.org/3/library >>> divmod(5, 2) (2, 1) >>> divmod(-5, 2) (-3, 1) >>> divmod(7, -9) (-1, -2) pow() 一般情况下,函数 pow() 的作用与运算符 仅这几个函数还远未涵盖初等数学中常用函数,所以必须有新的工具,才能彰显 Python 在计算上的优势。
You need Python.") # 打印一行英文字符。 新增 #coding:utf-8之后,调试此程序,就不再报错了。 以 VS Code 为例,如图2-2-3所示,将第6、7、8、9三行代码选中之后,使用快捷键组合“ COMMAND + / ”(或“ CTRL + / ”),即可将选中的多行“注释”了(此处的“注释”是动词 #coding:utf-8 """ This is my first Python program. I like it. 例如打算创建一个表示我已经出版的图书的列表(列表,是 Python 的一类内置对象,参阅第4章4.3节),如果用下面的方式: # a list of books a = ["机器学习数学基础", "Python 如果改为: books = ["机器学习数学基础", "Python完全自学手册", "数据准备和特征工程"] 即使不用注释,代码的含义也一目了然。
Python 中提供了一个内置函数 len() ,用于测量字符串的长度。 表4-2-2 字符数量 个数 1 2 3 4 5 6 7 8 9 10 11 12 13 字符串 s e l f l e a r n i n g 表4-2-2表示了字符串 book 的所有字符,不仅仅包括英文字母 >>> 'p' in 'python' # (17) True 注释(17)表示字符串 'p' 是字符串 'python' 中的一员,返回 True 则说明此表达式成立。 >>> 'py' in 'python' True >>> 'Py' in 'python' # (19) False >>> 'thon' in 'python' True >>> 'python ' in 'python' True >>> 'po' in 'python' # (20) False 注释(19)的返回值是 False ,是因为 Python 语言区分大小写,py
本文系《Python完全自学教程》第2章2.1.3节,更多内容,请访问 http://www.itdiffer.com/self-learning.html 2.1.3 解释器 经过第1章的1.2节和1.3 对于 Python 程序而言,用于“翻译”的叫做 Python 解释器( Interpreter )。 CPython 是使用 C语言开发的 Python 解释器,也是标准的 Python 解释器,是使用最广泛的 Python 解释器。 Python 语言的解释器采用的是第2种方法,如2.1.2节中所编写的 hello.py 文件,不论通过 IDE 还是在命令行中执行 python hello.py ,Python 解释器都会将源代码转化为字节码 You need Python.") 保存文件后,如果执行python hello.py,会打印出什么?
图1-7-8 Python39 目录内容打开其中的子目录“ Scripts ”,显示的内容如果是图1-7-9所示的文件列表,说明按照前述安装过程要求,将后面会用到的一个重要工具pip已经安装上了,否则, 图1-7-9 pip 工具文件打开图1-7-8中的子目录“ Doc ”,如图1-7-10所示,此处显示的文件 python394.chm 即为当前所安装的 Python 3.9.4 的文档,其内容与1.6.3 打开1.5.2节中的图1-5-9所示的终端,直接输入 python3 并回车(注意输入的内容),显示效果图1-7-18所示,从图示中可以看到 Ubuntu 20.04 中默认支持的 Python 3.8.5 图1-7-18 Ubuntu 默认的 Python 不论所使用的是什么版本的 Ubuntu 操作系统,都可以将其中的 Python 环境进行重新配置,令其版本为 Python 3.9.4(如图1-6-9 在 Ubuntu 的终端中(如图1-5-9所示,注意不是图1-7-18所示的 Python 交互模式。
★本文是《Python 完全自学教程》书稿内容,本书目前在线发布,更多章节请见 www.itdiffer.com” 说明: 本节内容,是针对非计算机专业的读者提供的补充知识。 本书所演示的代码都是基于个人计算机( Personal Computer ,简称:PC,也翻译为:电脑、计算机,有的资料中亦称为“微机”),或许有的读者执着于要在手机或者其他移动智能终端设备上编写和调试程序,不是不可以—— Python 以 Ubuntu 为例,通常使用快捷键组合“ Ctrl + Alt + T ”,即可打开终端(如图1-5-9所示),然后在终端输入命令,即可完成相应操作。 图1-5-9 Ubuntu 的终端 表1-5-2列出了几个常用的 Linux 命令,建议首先与表1-5-1中的 DOS 命令对比,了解它们的差异,并对其中部分 Linux 命令按照【自学建议】中的方法进行练习
图1-8-2 Vim 8.0 界面 Vim 很受 Python 开发者欢迎——更准确地说是早期的 Python 开发者,此间原因未加探讨,有兴趣者可以分析。 图1-8-4 关于 Vim 漫画 漫画中,第一幅图就指出 Emacs 虽然功能强悍,但是“太重了”;第二幅图则指出 Vi 是一个奇怪的家伙——不符合人体工学的要求;最好的就是 Vim :短小精悍,还免费 Visual Studio Code Visual Studio Code(简称:VS Code )是微软出品的免费代码编辑器,默认支持 JavaScript、TypeScript、CSS 和 HTML 图1-8-9所示为已经运行并创建了Jupyter Notebook 文档后的效果。 图1-8-9 Jupyter Notebook 截图 如果读者想深入了解 Jupyter 在数据科学中应用,可以参阅第12章12.4节示例内容,更完整的学习内容则请阅读拙作《跟老齐学Python:数据分析