Hi,小伙儿,这是咱们 Pythonn 之旅的第一篇文章。
首先,咱们看看这趟旅程的总体思路:
- 第一部分,计算机的基础知识。任何程序开发,都要对计算机的硬件和软件系统有一个基本的了解,这是编程的基础;
- 第二部分,编写第一个 Python 程序。咱们选择 Python 作为编程学习的开始,那它一定有些了不起的“特长”。当然,我们也要搭建一个最基本的编程环境,将学习到的知识,亲自编写并运行起来;
- 第三部分,了解 Python 的“工具箱”。任何程序,小到输出一句话,大到编写一个游戏或网站,都是由一些最基本的语句组成的。当然,这些语句要遵循一定的规则,也就是语法;
- 第四部分,了解 Python 的“积木”。在这个部分,咱们会学习函数和对象是什么东东,如何接收键盘的输入,程序出现异常的时候该怎么处理,等等。这些知识的确有一些难度了,但我相信咱们结合一些实际的例子,也能逐渐理解这一部分,不用担心;
- 第五部分,用 Python 做一些有意思的事。经过前面的学习,我们对 Python 算是有了基本的掌握,好比 1-3 年级,我们学习了很多的汉字、组词和成语,接下来就可以尝试读更复杂的文章,写更大段的作文了。我列举了几个初步的想法,比如编写一个乘法表,做一个小游戏,便一个自己的小网站,等等。这需要综合应用前面学到的知识,并付出更多的思考,但这个过程将是无比的有趣。
我画了一个思维导图:
那么,让我们出发吧!
Python 之旅的第一部分,我们讲三个事情:
- Python 确实挺厉害
- 搭建 Python 的编辑和运行环境
- 第一个 Python 程序 —— “Hello World”
一、Python 确实挺厉害!
世界上到底有多少种编程语言,其实一直都没有标准的答案,据说有几千种吧,但主要使用的,其实只有大概几十种。即使在这几十种编程语言之间,流行程度也有很大的差别。下面是2022年5月份统计的编程语言流行度榜单:
要特别说明下,TIOBE 排行榜,仅仅代表流行度,并不代表语言本身的好坏。这就好比每个小朋友,都有他(她)的优缺点,不能简单的下结论。编程语言也是一样,有的领域很好用,换个领域就未必。比如 MATLAB,在数学家眼中就是极为好用的工具,但在网页设计师眼中,简直弱爆了。
在 TIOBE 榜单中,Python 排在第一名,是当前这个世界上最流行的编程语言。Python 的确有不少优点,我感觉,特别突出的有下面四点:
1. 用途广泛
Python 可以用在社会的方方面面,比如Web网站开发、游戏开发、大数据分析、科学研究、人工智能(AI)、网络通信、IT维护等等。世界上很多著名的程序都是由 Python 开发的,比如大名鼎鼎的图片和视频分享应用 Instagram,美国最大的娱乐、社交及新闻网站 Reddit、为世界服务的网约车平台 Uber、全球最大的云音乐应用 Spotify(和网易云音乐一样)……
2. 效率极高
相比很多流行语言,编写同样功能,Python 包含的代码行更少,而且语法相对也更为简单一些。我们举个例子吧,分别用 Java 和 Python 编写一个最简单的程序 —— 在屏幕上输出 “Hello World”。
下面是使用 Java 编写的代码
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
下面是使用 Python 编写的代码
print("Hello, World!")
另外,工整美观的程序代码,往往更容易让自己和其他人理解,这就是可读性。想象你作业中那些七扭八歪的部分,一定让老师很郁闷,有时候自己也忘了当时写的是什么。而可读性就体现了一种编程语言对效率的重视态度。咱们看看 Python 为了强制你写出规范和清晰的代码,都干了什么。
我们写代码的时候,会通过不同的缩进(本质上就是空格)来表示不同的代码片段,Python 中没有用其他编程语言中广泛使用的“花括号”,而是通过空格数量。在 Python 中,同一代码块的语句缩进必须完全一致,否则程序就会运行出错:“ IndentationError: unexpected indent” 和 “IndentationError: unindent does not match any outer indentation level”。因此说 Python 真是一个严格的好老师!
# 1. 同一逻辑层级,缩进空格数相同,没有问题
if True :
print("You are right") # 我是7个空格
print("You are right") # 我是7个空格
# 2. 同一逻辑层级,缩进空格数不同,编译错误
if True :
print("You are right") # 我是7个空格
print("You are right") # 我是8个空格
>>> IndentationError: unexpected indent
# 3. 缩进空格数和任何一个代码块都不能匹配,编译错误
if True :
print("You are right")
else :
print("You are wrong")
print("Am I right") # 我跟哪段逻辑都不搭界
>>> IndentationError: unindent does not match any outer indentation level
3. 社区发达
Eric Matthes 在《Python 编程,从入门到实践》这本书中说了这样一段话:
我依然使用 Python 的一个最重要的原因是,Python 社区有形形色色充满激情的人。对程序员来说,社区非常重要,因为编程绝非孤独的修行。大多数程序员都需要向解决过类似问题的人寻求建议,经验最为丰富的程序员也不例外。需要有人帮助解决问题时,有一个联系紧密、互相帮助的社区至关重要,而对于像你一样将 Python 作为第一门语言来学习的人而言,Python 社区无疑是坚强的后盾。
正是因为社区的强大,因此你会发现,几乎任何稍微复杂一点的事情,Python 都有现成的库——程序库是一个重要的概念,我们在后面会单独来讲——这可以帮助我们节约不少的时间,比如数据计算和分析中使用到的 NumPy 和 SciPy,在 Web 开发中使用的 Django,还有一些极高专业度的库,如scikit-learn 适用于机器学习,而 nltk 适用于自然语言处理,等等。
Python 也有很多很棒的学习资料,比如 “菜鸟教程” 社区。
其实,编程语言最好的学习资料,往往都是官网文档,但主要都是英文,所以,你需要一直好好的学习英文。
4. 一个好爸爸
Python 在全世界能够得到广泛的支持,强大的原因中,还有一个非常重要的因素,Python 还有一个“好爸爸” —— Google。
一种编程语言,就好比一个孩子,良好的成长需要长期的精心呵护与细致培养,而一个好的赞助商往往能帮助程序语言度过漫长的岁月。C# 的背后是微软,Java 的背后是 Oracle,PHP 的背后是 Facebook,而 Python 背后则是Google。Google 从 2006 年开始大规模使用 Python,并建立了一个 Python 的社区,提供免费的课程,包括练习项目演讲课件,相关视频等,也经常为 Python 打打广告。谁想“欺负” Python,得先过了 Google 这道关……
二、搭建 Python 的编辑和运行环境
从前,无论是 Python,还是 Java,或者是 PHP,我都会在自己的电脑上部署一个编程语言运行环境,然后再进行一些看起来比较繁琐的配置,最后往往还要安装一个庞大复杂的编程工具——IDE(集成开发环境)。今天,早已是云计算和互联网的时代,对于 Python 的学习,我们不必这么复杂,互联网能够帮我们解决很多难题,只需要我们拥有一台能够上网的电脑。
我们可以使用 TeamCode 在线编辑平台。我们在自己的电脑上什么都不必安装,只要有一个浏览器,就能够开始进行编程的学习,而且和在自己电脑上安装的IDE几乎是一样的体验。另外,在右上角也能够看到,这个平台也可以支持 Python、Java、PHP、Go、C/C++ 许多种编程语言。
下面是在这个平台上编写和运行 Python 程序的截图
不过,随着你学习的深入,我们在后面一定就会用到更强大的 Python 编写和运行的工具,我们管它叫做 IDE,也就是 Integrated Development Environment —— 集成开发环境。Python 有一个非常厉害的 IDE,叫做 PyCharm,只不过,咱们暂时先不会用到它。看看它的界面吧,比起上面提到的 TeamCode 在线编辑平台要复杂很多。
三、第一个 Python 程序 —— “Hello World”
好啦,打开在线编程平台,试着敲进下面的这个代码,然后点击右上角的“运行”按钮,Let's Go!
print("Hello, World!")
print("这是我的第一个Python程序,它非常简单,仅仅是输出一句话,^_^")
接下来,我们就要进入真正的 Python 编程之旅啦,加油,小伙儿!