一、引言
之前,由于合作写程序的需要,跟一起耍大蛇的同志们统一安装了64位的Python 3.7.6,发现今天发现Python 3.7.6的一个弱点,决定从此不再使用Python 3.7系列。预知原因如何,请看正文部分。环境:64位Win 10中文版 + 64位Python 3.6.5、3.7.6、3.8.8
《Python程序设计(基于计算思维和新文科建设)》,ISBN:9787121435577,胡凤国,电子工业出版社,2022年6月。本书是电子工业出版社在国内较早采用纸质版+电子版的创新图书发行模式的第一次尝试。本书是这套创新图书的纸质版部分,与之内容互补的电子版图书将稍后出版。基础篇介绍Python程序设计的入门知识,共12章,包括:⑵ Python软件的安装和Python程序运行;⑶ Python的基本概念(对象、数据类型、表达式、内置函数);排错篇总结初学者常遇到的错误并介绍程序调试方法,包含2章:与本书内容互补的电子版图书包含文本篇和应用篇两部分:文本篇:介绍字符集、编码和文本文件读写的知识,包含了对国家规范《通用规范汉字表》8105个汉字当中难以输入和难以显示的汉字的处理。应用篇:介绍Word、Excel、PPT、PDF、图片等常用办公文件的处理,是大家提高办公和科研效率的好帮手。本书配套有详细的PPT和教学大纲,还有全部例题的程序代码和绝大部分思考题的程序代码。本书配套PPT里面还加入了配套电子版图书中的部分内容,比如字符集和编码,不同编码的文本文件的读写,Word、Excel、PPT、PDF等一些常用办公文件的读写。1、大学文科生, 可选本书当Python教材或自学Python的参考书。2、大学理工科学生, 可选本书当自学Python的参考书。可拿本书当工具书,本书的配套程序会为您节省效率,在当前大数据和新文科的背景下,本书可以为相关领域的量化研究提供技术支持。本书配套的电子版图书中的编码和文本处理知识也可以作为理工科教师和科研人员处理文本数据的参考资料之一,毕竟专门开辟章节介绍国家标准《通用规范汉字表》汉字处理的程序设计图书并不多见。
本书有专门的海龟画图章节,有大量的有趣数学题目,可以培养学生的计算思维,适合对编程感兴趣的中小学生阅读,也适合打算让娃参加编程辅导班的家长朋友参考。本书在各大实体书店和网店均有销售。京东、天猫、当当的购买渠道如下(可扫码直达购买页面)。
三、弃用原因
从昨天开始,想把文字转成语音并在电脑上播放,于是找到一个扩展库pyttsx3,然后在Windows 10的命令行窗口中运行命令:
pip install pyttsx3
根据网上的教程,测试了如下代码:

预期的运行效果是程序会播放“北京是中国的首都”这句话,且为这句话生成一个声音文件。但运行下来,程序居然抛出异常:

网上疯狂查资料,才发现,原来是pyttsx3的版本跟Python的版本不配套导致的。
因为不指定扩展库版本的pip命令安装总是安装最新版本的扩展库,所以这次安装的是最新版的pyttsx3,版本号是2.90。
网上的资料建议安装2.7的版本,于是安装了一个2.71:
pip install pyttsx3==2.71
然后再运行程序,发现能播放“北京是中国的首都”这句话,但声音文件却没有生成,诡异的是,程序运行居然没有报错。
于是,不厌其烦地下载最近的十个版本的pyttsx3,开展地毯式搜查,终于发现,pyttsx3 2.71居然就是Python 3.7.6下面能安装到的最好的一个版本。
于是转向其它的Python版本来测试,一测试发现,Python 3.6.5和Python3.8.8下,pyttsx3非常好用,能读出一句话的声音,能根据一句话来生成语音文件。具体对比如下:
四、三个Python版本与十个pyttsx3版本的穷尽测试
我在64位Win 10中文版环境中分别用 64位的Python 3.6.5、3.7.6、3.8.8测试了扩展库pyttsx3的十几个版本,用上面提到的程序来测试,测试结果对比如下:

解释一下上表:
播死机:播放语句不报错,但程序一直等待,像是死机一样;乱播:播放语句能播放文字,但播放的内容睡也听不懂;文件×:生成语音文件的语句运行报错:没有save_to_file方法;文件○:生成语音文件的语句运行不报错,但不能生成语音文件;灰色单元格:Python版本不能安装相应的pyttsx3版本;圆点单元格:能安装扩展库,但程序一开始运行就抛出异常。我们发现,Python 3.7.6居然没有任何一个匹配的pyttsx3扩展库版本来完美播报和生成语音文件,但Python 3.6.5 和 Python 3.8.8都有很多完美匹配的pyttsx3扩展库版本。
Python 3.6 引入了f-string格式化方法,Python 3.8 引入了海象运算符,这些都是Python中重要的语法现象,相比之下,Python 3.7 好像就没有引入什么令人记忆深刻的语法特点。
本来 Python 3.7 的存在感就挺弱,今天经过扩展库 pyttsx3 这么一折腾,感觉 Python 3.7 完全没有使用的必要啊。
因此,弃用 Python 3.7.6,连带着弃用全部的 Python 3.7 系列,也不再推荐学生使用 Python 3.7 。
由于本号文章以辅助教学为主,笔者不建议自己的学生直接拿代码运行,而是建议在理解了思路之后自己敲代码来加深印象,所以本号一般不直接贴代码。如果其他读者朋友有需要代码,请关注本号,加笔者微信联系。欢迎关注微信公众号“语和言”,本公众号将不定期发布对图书《Python程序设计(基于计算思维和新文科建设)》中的Python知识点进行解读和补充的内容。语和言公众号还有读者交流群,读者朋友可以入群一起讨论问题。
欢迎跟图书《Python程序设计(基于计算思维和新文科建设)》的作者胡凤国老师进行交流,电邮:cuchufengguo@163.com。
六、图书目录
图书《Python程序设计(基于计算思维和新文科建设)》目录如下(手机端可以用手指上下滑动下面灰色区域的文字来查看全部目录,电脑端可以用鼠标滚动滚轮或拖动下面文本框右边的滚动条来浏览全部目录):
8.2.4 关于元素可比较的有序序列类对象的通用操作10.3.3 用上下文管理语句with来管理文本文件读写12.12.1 datetime标准库定义的常用类参考文献