程序员的基本工作是写程序,而写程序要用到编程语言,编程语言可以分为编译型语言跟解释型语言。

编译型语言,就是在执行代码之前,先把源代码编译(加链接)成另一种形式的代码,比如目标代码,或字节码,这种代码在执行的时候速度可以更快一些,因为它更易于被机器执行。源代码,就是你写的程序代码,是给人看的代码。
解释型语言,就是在执行代码的时候,才把源代码进行转换,转换成机器能识别的指令,然后执行。因为执行时才来解释,所以相对于编译型语言在执行速度上就慢一些。

解释型语言在执行上比编译型语言慢,但是,慢是相对的。别人的奖金是一个亿,而你的奖金是一千万,那一千万的奖金是不是一定不能接受呢?在很多情况下,你很可能并不关心程序执行的速度,因为它总是在接受的范围内。反而,编写程序的速度,很可能是你关心的--谁不想飞快地写出代码?

解释型语言,一般都是编写速度很快的语言,因为在设计上,它就是要做到易于使用。

事实上,使用解释型语言,可以轻易编写出很多程序,而这些程序,编译型语言有可能需要耗大力气才能编写出来。当然,这并不能说明手枪比导弹好用。

c、c++、java、pascal、fortan等等,是编译型语言。

python、awk、perl、ruby、shell、javascript、php等等,是解释型语言。

解释型语言,也叫脚本语言,而script也可翻译成剧本,所以脚本语言,就是用来给机器写剧本的语言。不同的脚本语言,应用于不同领域,比如有些专门用于文本处理(awk等),有些专门用于web页面(javascript等)。但也有一些脚本语言追求更广泛的应用,比如python等。对于一个想接触编程的人来说,脚本语言是一个好的选择,主要是因为它易于上手,而能上手对于士气来说是多少重要!

而python则是脚本语言中的一个很好的选择。

本文介绍python的起步,让机器执行代码。 为了执行python语言写的代码,先要安装能够解释源代码的python程序。

(1)安装python

python程序可以在多个平台上运行,包括unix、linux、macosx、windows等,这里提到的“python程序”,指的是能解析python代码的程序,是一个解析器。

我使用的是mac osx系统,mac电脑,所以以下的安装与使用,都以mac环境为前提,你可以根据实际环境进行调整--这些知识都很容易在网上搜索到的。

首先应该知道python的官网,python的官网是这个:
https://www.python.org/

在python的官网中可以找到最新版本的python程序来安装,如下图所示:
下载python

因为mac系统已经自带了python2.x的版本,所以就算不安装最新版本的python,也可以使用python程序。为了使用python3语言,我还是安装了比较新的python程序,并且也保留了系统自带的python2.7.15的版本。比如我的python版本是这样的:
python版本

为了区分两个版本的python程序,我给python3起来一个别名:

alias py='/System/Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5'

所以,使用"python"时表示使用的是python2.x版本,而使用"py"则表示使用python3.x版本。

如果想查看python程序所在的目录,可以使用which这个shell命令:
python程序所在目录

以上介绍了python程序的安装,操作上相对是简单的。另外,你也应该安装pip3,pip3是一个安装python库的程序,你一定会用到它的,而对于安装办法,这里不介绍了,你可以通过百度搜索到。

在安装好python程序后,就可以使用python程序了。

(2)使用python

使用python程序,一般有两种操作。

一是直接启动python程序,进到交互模式,再逐行写代码地给python程序来解释,比如下面截图所示:
逐行调用python程序

使用exit(0),可以退出这种交互模式。

二是把python代码写到文件中,并以.py作为后缀来命名,然后用python程序来执行它,比如下面截图所示:
使用python程序来执行脚本

这里的test.py文件,就是脚本(让机器执行的剧本)。

一般来说,写脚本再调用python程序来执行,是常规的操作。

(3)专用的python环境

python之所以易用,有一个重要的原因,就是提供了很多现成的库,就相当有很多现成的工具供你使用,你不必从头开发。在安装各种工具库时,默认是全局生效的,相当是一个全局的python环境,而有时候一个局部的python环境更有利于控制或试验,所以怎么弄出一个专用的局部的python环境就是一个需求了。

可以这样生成一个python环境,也就是一个目录:

pip3 install virtualenv --先要安装virtualenv程序
virtualenv -p python3 pyenv --pyenv就是一个专用的python环境目录
source pyenv/bin/activate

以上创建并激活了(source)一个python环境,如果想禁用则执行deactivate命令,如果想删除则直接删除这个目录即可。在source激活环境后,命令的前面会多一个括号标志,比如这样:
激活python环境后

(4)一个例子:把一段文字转换成语音

好了,一切准备就绪,那就来写一个例子吧。写一个这样的程序:输入一段文字,转换成语音,并输出一个mp3文件。对,这就是网上常见的TTS(Text To Speech),即“从文本到语音”。当然,转换的关键技术是别人的,我们只是把这个工具库引进来使用。

这里使用的tts库叫pyttsx3,这样安装:

pip3 install pyttsx3

有了这个库就可以把文本转成语音,可以播放出来,也可以保存成文件,而保存出来的文件是aiff的文件格式,并且里面的音频是pcm_s16be编码,而我们更常见的音频格式是mp3或aac之类,所以进一步的需求,是把这个aiff文件转换成mp3编码的文件,这时,可以使用另一个库,叫AudioSegment,这样安装:

pip3 install AudioSegment

然后就是写代码了:

import pyttsx3
from pydub import AudioSegment

tts = pyttsx3.init()
content = "你们好啊,我是小程,今年五岁。" 
outfile = "out.aiff"
#tts.say(content)
tts.save_to_file(content, outfile)
tts.runAndWait()
AudioSegment.from_file(outfile).export("out.mp3", format="mp3")

执行之后,在程序目录下,会生成一个out.mp3的文件,如果你是在微信公众号(比如“广州小程”)看到这篇文章,那你可以听一下。
(out.mp3的音频)


总结一下,本文主要介绍了python程序的安装与使用,在环境准备好的情况下,特别是mac环境上,这两步的操作是很简单的。这里也介绍了怎么创建一个专属的python环境(目录),最后以一个TTS简单程序结束本文,更多内容下回分解。