Python从入门到精通
上QQ阅读APP看书,第一时间看更新

1.13 程序实战:你好世界

不少打算从事程序开发的人找不到入门之法,所谓难者不会,概因找不到好老师细心教你。在写出第1个Python程序hello world之前,读者必须按照1.1节中的内容对Python解释器进行安装。这里以Windows环境来进行程序的编写。

1.13.1 第1个Python程序

第1个Python程序为向屏幕输出字符串"hello world",程序代码如下。

# __author__ = 薯条老师
 
def main():
       print("hello world")
if __name__ == "__main__": 
main()

1.13.2 选择一个代码编辑器

编写程序之前,得有个代码编辑器。常用的编辑器主要有Notepad++和PyCharm,前者是一款轻量工具,后者是一款IDE工具,包含了更加丰富的功能,稍显笨重。下面分别教大家下载和安装Notepad++和PyCharm。

Notepad++

Notepad++是 Windows操作系统下的一个文本编辑器,有完整的中文版界面。Notepad++支持语法高亮显示,不仅可以用来制作一般的纯文字说明文件,还十分适合编写计算机程序代码。读者可到Notepad++官方网站的下载页面中下载该编辑器,下载后直接双击文件安装即可。Notepad++界面如图1-16所示。

图1-16

社区版PyCharm

PyCharm是专为Python开发的IDE工具,提供了诸多功能,以帮助程序员提升开发效率,如调试、语法高亮、代码跳转、自动完成、智能提示等。PyCharm分为商业版和社区版,商业版是收费的,社区版面向Python社区的学习人员,其提供的功能与商业版并无太大区别。一般来说,社区版即可满足程序员的开发需求。

读者可到JetBrains公司的官方网站下载PyCharm。单击Community下的DOWNLOAD按钮即可下载社区版PyCharm,如图1-17所示。下载完毕后,双击安装即可。PyCharm界面如图1-18所示。

图1-17

图1-18

1.13.3 运行程序

从一开始学编程时,就得有一个目录组织的概念。清晰的目录结构有助于对项目的整体维护,这是作为一个程序员最基本的素养,读者须谨记在心。

(1)在D盘创建python-learning目录,打开这个目录,创建chapter1目录,然后在chapter1目录中创建一个名为 helloworld.py 的文件,如图1-19所示。

图1-19

(2)双击打开helloworld.py文件,原样输入以下代码,红色箭头处示意必须有空格缩进(一般缩进4个空格),如图1-20所示。

图1-20

实例代码
# __author__ = 薯条老师
 
def main():
       print("hello world")
if __name__ == "__main__": 
main()

笔者有话说

注意,代码中的__name__和__main__两侧是两根下画线。写完这个程序后,想让它运行,务必按照以下步骤来执行这个Python程序。

(1)按Windows键,输入cmd命令,按回车键,进入Windows的命令行界面。

(2)输入d: 再按回车键,以切换到D盘。

(3)输入cd python-learning,进入创建的python-learning目录。

(4)在python-learning目录中执行python helloworld.py命令。

按照以上4步操作以后,若看到hello world输出在终端,则表示程序执行成功。笔者会在1.13.4小节对程序源代码进行逐行解释。

编程小知识

Windows系统使用盘符来对磁盘进行标识,如C盘的盘符C:、D盘的盘符D:。要在命令行中进行磁盘的切换,可直接输入对应的盘符,然后按回车键,例如,从C盘切换到D盘,命令为d:。在磁盘内部进行切换使用cd命令加对应的路径,例如,在D盘中切换到python-learning目录,命令为cd python-learning。

1.13.4 代码逐行讲解

下面用代码编辑器打开上一小节创建的helloworld.py,并对代码进行逐行讲解。

# __author__ = 薯条老师 

这里的#字符在Python中是用来作注释的,是单行注释,多行注释使用3个英文的单引号'或双引号"将待注释的内容括起来,举例如下。

 # 单行注释
'''  
  多行
注释
''' 
 
""" 
  多行
注释
"""

注释的内容会被Python解释器忽略。有良好编程习惯的程序员通常都会写注释,加注释是为了提供一些代码之外的信息,其他人通过这些信息可以知道程序的编写日期、程序的作者、函数的功能、复杂的逻辑描述,等等。

当解释器读到注释字符时, 会略过接下来的内容,直到读到下一个注释字符为止,也就是说解释器只翻译除注释之外的内容。

实例代码
def main():
print("hello world")

此处的def实为英语单词define的简写,define有“下定义,规定”的意思,是一个动词,在Python中使用def来定义函数。函数包含函数头和函数体,函数头又包含函数名和参数列表,函数体是用来实现函数功能的代码块。

知识超链接

对函数定义还不是很熟悉的读者,可以复习1.5~1.8节中的变量、表达式、语句和函数等内容。

在我们定义的这个函数中,函数名为main,函数体中执行了内置的print()函数,读者可以将main自行改写为其他函数名来进行测试。

print()是Python的内置函数。所谓内置函数,就是在Python中预先写好的函数,可直接调用。print("hello world") 语句的功能即为执行print()函数,将hello world输出到屏幕上。

我们也可以将数字或其他数据类型输出到屏幕上,如 print(666)、print(2019.888) 等,读者可以自行改写 helloworld.py文件,然后测试输出其他类型的数据。

笔者会在后面对函数单独进行讲解,初学者需要做的是按照书中的内容反复练习,直到熟练为止,如果没有达到熟练的程度,那就不要开始学习下一节内容。

实例代码
if  __name__ == "__main__":
      main() 
 
""" 
注意:__name__ 与 __main__前后都是双下画线
""" 

__name__是Python中的一个系统变量,保存了当前模块的完整名称,“==”是逻辑运算符,用于判断两侧的量是否相等。

这一段代码在逻辑上表示如果系统变量__name__的值等于"__main__",就执行main()这个函数。

main()函数已经在前面定义过,这个函数的函数体为执行print()函数,给print()函数传递"hello world"字符串参数,print()函数会把 hello world输出到屏幕上。

能否不加 if__name__ == "__main__":呢?

答案是肯定的,读者可以自行将这一行删掉,再将main()左移到行首。1.12节中已对模块进行简单介绍,在Python中每个.py文件都可以作为一个模块,请读者牢记以下知识点。

如果当前模块是直接执行的,__name__的值就为"__main__";如果当前模块被导入其他模块,__name__的值就为模块名字,模块名字是创建的文件名(不包含.py)。

1.13.5 课后习题

(1)尝试改写main()函数名为其他的函数名。

(2)改写helloworld.py,输出10个阿拉伯数字到屏幕上。