阅读量

原创教程,严禁转载。引用本文,请署名 Python中文网, http://www.zglg.work


Day5:创建你的第一个程序

我们把每周五称为 “项目日”(Project Day) ,在这一天我们将使用这一周所学到的概念一起创建一个小的应用程序或者游戏。

然而在本周,我将让你在单元格中编写一些代码,以便你能了解Python的强大功能。由于我们还没有介绍过任何Python,所以我希望你能够体验一下我们将在接下来的几周里学习到的内容。

接下来你要编写的代码将使用第2、3和4周中涉及的概念。在这几周结束时,你将能完全理解本节中的每一行代码并创建自己的代码,并且自由调整使得程序更加具有挑战性。

我们将从昨天课上创建的Jupyter Notebook文件开始。如果你此时已经关闭了程序,请重新打开notebook文件。


注意 如果你忘记了如何打开Jupyter Notebook,请回到昨天的课程,重新按照步骤操作,不过既然现在已经创建好了一个文件,新建文件这步可以不做。


行号简介

对于一些比较大的项目,有时会跟丢代码。对于这个项目以及之后的所有课程,我将使用行号来作为辅助。这将使你更容易跟随代码,并且检查代码是否正确:

1| ←

行号现在将出现在所有单元格的左侧,我们将需要在单个单元格中编写所有的代码。一定要注意观察这些数字,因为你有可能会看到行号会有跳跃:

1| # this is the first line in the cell
5| # this is the fifth line in the cell

这意味着你在第2行上显示了第5行代码的内容。


注意: 点击单元格侧面后按“L”键,可以开启行号的功能。


创建程序

我们需要做的第一件事是在文件的当前单元格下面创建一个新单元格。要做到这一点,只需遵循以下步骤即可:

  1. 单击文件中的最后一个单元格。
  2. 当单元格被突出显示时,转到菜单栏的“插入(Insert)”选项卡,然后点击“插入下面的单元格(Insert Cell Below)”。

我们现在有一个可以创建项目的单元格。如果你想创建一个标题为“guess Game”的标记单元格,请回顾上一课所讲的内容以及我们之前的操作。在这个新的单元格中,让我们继续编写以下代码:


 1| # guessing game
 2| from random import randint
 3| from IPython.display import clear_output
 5| guessed = False
 6| number = randint(0, 100)
 7| guesses = 0
 9| while not guessed:
10| ans = input("Try to guess the number I am thinking of!") 
11| # use tab to indent
12| guesses += 1
14| clear_output( )
16| if int(ans) == number:
17| print("Congrats! You guessed it correctly.") 
    # use tab twice to indent twice
18| print( "It took you { } guesses!".format(guesses) )
19| break
20| elif int(ans) > number:
21| print("The number is lower than what you guessed.")
22| elif int(ans) < number:
23| print("The number is greater than what you guessed.")

这个程序无论如何都不能说是完美的,但它确实是一次非常有趣的尝试——你需要猜出计算机想到的那个数字。现在我们会感觉到这看起来像一门外语,但在接下来的几周内,我们将理解每一行代码的意义。最终你甚至可以对游戏做出自己的改变和改进!现在你所需要做的,仅仅是运行单元格并玩一下这个游戏。

请开始像开发者一样思考,并在你玩游戏的时候问自己这些问题:

  • 我可以做出哪些改进?
  • 有什么会使程序崩溃?
  • 我如何才能做得更好?

不要害怕出错,这是成为一名开发人员的成长过程中的必经之路!破坏你的程序是测试你编写的代码过程中的有趣之处。

在我们继续讨论前,我将向你提出一些问题,比如代码中的某行为什么以这种方式工作。当这种情况发生时,试着思考几分钟,甚至试着给出答案,你也可以使用搜索引擎来寻找答案。

作为一名开发人员,你会发现你做的很多事情都是在搜索引擎上搜索一个问题。这就是普通开发人员与优秀开发人员之间的区别——独立解决问题的能力。学完了这本书中剩下的课程,你就可以在没有我帮助的情况下很好地解决问题了。

最终输出

本书中所有源代码都将位于本书的Github存储库中。你可以在本书的前面部分找到资源库的链接。要查找本周的代码,只需打开或下载Github仓库中的“Week_01.ipynb”文件。如果在此过程中遇到了错误,请参考本书中提供的代码内容,以检查在哪里出了问题。


今天,我们能够运行第一个Python程序了。尽管你可能还不理解程序中发生的事情,但我相信,能看到Python的强大功能是至关重要的。在我们继续学习的过程中,你可以随时地回到这个程序并对它进行自己修改。毕竟你提高编程水平的唯一方法就是去动手实践!!!


本周总结

我知道这周的进展可能有点慢,但这是非常关键的一周。我们讨论了如何下载必要的工具、如何使用它们,以及如何使用终端。这些知识点对于理解接下来的内容很重要。这些预备知识将成为你成功路上的基石。

在本周的最后,我们一起编写了一个有趣的猜谜游戏,我希望你能尝试一下。作为一个开发人员,想去破坏一个程序是很重要的,只有这样你才能去改进它。在接下来的一周,真正有趣的事情要开始了。我们将开始学习Python的基础知识,并最终一起编写一个小程序。

本周挑战

每个星期,我都会向你提出一些挑战,你一定要去尝试。完成这些挑战将有助于提高你的编程技能。由于这周主要是关于环境设置的,下面的挑战将与编程无关。然而,在之后的几个星期中,我将会给你一些例子来测试你的能力。

  1. 新建文件:创建一个新的Jupyter Notebook文件“Week 1 – Challenges”。现在,主工作文件夹中应该有两个文件了。
  2. 编写Markdown:和练习1中的文件一起,创建一个markdown单元格并且在其中写下“Challenge 1”作为你的笔记。尝试几种不同的标题大小。选一个你最喜欢的。
  3. 探索Python:你应该习惯用搜索引擎来查找你感兴趣的问题或话题。尝试搜索您感兴趣的Python主题,并在开始学习这门语言时记住它们。
  4. 激励自己:每个程序员都是从零开始的。伟大的程序员们都是通过努力学习自己感兴趣的语言而铸就成功的。找出你想成为一名开发者的动机,并把它写下来。当你开始奋斗的时候,请务必记住这一点。

上一篇:Day4使用Jupyter Notebook
下一篇:Day6字典