
2.1 开启Python编程
无论你是否有编程经验,学习Python都会让你感觉是一次愉快的旅行。相比Java和C++,Python的最大特色就是易于上手。下面我们就开启Python的编程之旅吧!(见图2-1)

图2-1 欢迎进入Python坑
2.1.1 交互式编程
还记得第1章中的Hello World吧,只需要在命令行中输入“python”即可进入Python的交互式编程(见图2-2),之后直接编写Python代码按回车键即可看到运行效果。

图2-2 交互式编程
交互式编程不需要创建py文件,是通过Python解释器的交互模式来编写代码的。怎么样?跟着一起操作是不是发现很简单?但是,好像还有那么一点点问题,就是只要cmd窗口关闭了,刚刚所编写的代码也就没有了。
辛辛苦苦完成的代码没有保存起来一定是一件令人崩溃的事情。很显然,这里需要保存我们的代码,有什么解决办法呢?继续往下看。
2.1.2 脚本式编程
首先使用文本编辑器编写后缀名为.py的文件,再通过Python命令调用解释器开始执行py文件,直到执行完毕。当文件执行完成后,解释器不再有效。
马上来编写一个简单的Python程序。注意,所有Python文件都是以.py为扩展名。
1 在VSCode中,通过Ctrl+N快捷键新建一个文件(见图2-3)。

图2-3 按Ctrl+N快捷键
2 按C trl+S快捷键保存文件到你的存放目录,别忘记它的后缀名为.py(见图2-4)。

图2-4 按Ctrl+S快捷键
3 编写Python代码,做一个简单输出,直接使用内置的print函数即可(见图2-5)。

图2-5 编写代码
4 执行 first.py文件。
运行Python文件,有以下两种方式。
第一种方式是通过Python命令来运行first.py文件。打开cmd窗口,在命令行中找到first.py的存放地址(见图2-6、图2-7)。

图2-6 找到目录

图2-7 执行
第二种方式是直接在VSCode开发工具中运行first.py文件(右击,选择在终端运行Python文件,见图2-8)。

图2-8 运行
2.1.3 缩进
大家先来看一下图2-9和图2-10,说说哪幅图的方式让你更加中意。

图2-9 无缩进代码

图2-10 有缩进代码
看图过程中并不用太过关心上面两幅图上代码的意思,其实只是创建了一个类(在后续章节会讲到),单从第一眼看到的效果,是不是右边的看起来层次结构更加清晰一些呢?
开发过程中除了要实现设定的需求功能以外,代码的规范性也很重要。其中,缩进就是Python代码必须遵循的规范之一。
在其他编程语言中,一条语句块的开始和退出一般通过花括号或者其他关键字来表示,例如在Java代码中定义一个方法打印一条语句,代码如下:
public static int SayHi(){ System.out.println("hello"); #Java中的输出语句 }
上述代码中涉及Java的一些语法,我们可能并不太明白,但是可以看出一个语句块由花括号包裹起来,表示为一个整体。
在Python中,使用缩进来表示语句块的开始和退出。缩进和Java中的花括号一样重要,在Python中变成了语法类(不按照这个写就是语法错误),以此来强制程序员养成良好的编程习惯(见图2-11)。一般使用四个空格或者一个Tab,不过这并不是固定的,三个空格、五个空格只要语句块里面的代码都保持一致的缩进就可以(建议用一些开发IDE,很多时候会帮你自动缩进)。

图2-11 注意编码规范
2.1.4 注释
适当的注释可以使代码更容易被他人理解。给你打KPI的领导、其他同事或公司里面定期的代码审查人员等都可能会查看你的代码(见图2-12),这时如果程序代码没有注释就很难理解。
还有工作交接、项目迭代等各类需求。你去修改一个月之前甚至几年之前的代码,很有可能需要花费几天时间好好地和它重新认识一下。在代码中关键的业务逻辑或者重要的地方适当地添加注释也是编程规范里的一大要求。
计算机并不会去阅读“注释”,换句话说,注释并不会被计算机执行。在Python中,代码注释可以分为单行注释和批量多行注释两种。

图2-12 代码审查
(1)#号常被用作单行代码注释符号,在代码中使用#时,其右边的所有代码数据都不会被执行。
例如,在以下代码中,虽然存在两个print输出语句,但是因为第一个print前面存在#,所以不会执行当前代码,输出结果为“Hello,Python”。
#print("你好!Python") print("Hello, Python!") #这是一句输出语句,运行结果为“Hello,Python!”
(2)在Python中当需要将多行代码进行注释的时候,虽然可以用#来逐行注释,但是三对单引号(或三对双引号)无疑是最好最便捷的处理方式,在三对单引号(或三对双引号)中间的任何代码数据都不会被执行。
例如,在以下代码中,虽然出现了多次print输出,但是输出结果中只有一句“Hello,Python!”,其原因就是前面的print输出在批量注释中间,因而没有被执行。
''' print("Hello, Python!") print("Hello, Python!") print("Hello, Python!") print("Hello, Python!") print("Hello, Python!") ''' """ print("Hello, Python!") print("Hello, Python!") print("Hello, Python!") print("Hello, Python!") print("Hello, Python!") """ print("Hello, Python!") #这是一句输出语句
除了要添加注释以外,注释的内容也要尽量简单明了地表达被注释代码的意思,当然也有很多有意思、个性化的注释文字,比如图2-13中的注释(建议不用)。编写注释的习惯和规范需要一点点养成。

图2-13 有意思的注释