开始 Python 之旅

课程来源

本课程基于 Python for you and me 教程翻译制作,其中参考了 Python tutorial 和 The Python Standard Library,并对原教程的内容进行了改进与补充。

相关链接地址如下:

Python for you and me 的法律声明有如下内容:

Permission is granted to copy, distribute, and/or modify this document under the terms of the Open Publication Licence, Version 1.0, or any later version.

知识点

  • 使用交互模式的 Python3 解释器
  • 简单使用 vim 编写 Python3 脚本
  • 执行 Python3 脚本
  • Python3 代码风格建议
  • Python3 中使用注释
  • 认识 Python3 模块

实验步骤

1. 解释器

Python 是一个脚本语言,你可以在 Python 解释器中直接写代码或者将代码写到一个文件里,然后执行这个文件(即脚本文件)。

首先,我们从使用解释器开始,打开终端,键入Python3 并回车。这个时候解释器便工作于交互模式

作为我们第一个 Python 代码,我们将打印经典的 "Hello World!",如下所示:

>>> print("Hello World!")
Hello World!

欣赏完自己的杰作后,按 Ctrl + D 输入一个 EOF 字符来退出解释器,你也可以键入 exit() 来退出解释器。

2. 脚本文件

作为正式的程序员,你可能想要将上述的代码写到一个源文件。那么我们来创建一个 helloworld.py 文件,用你喜欢的任何编辑器来创建这个文件,我使用 Vim ,你可以使用基于 GUI 的工具,如实验楼环境桌面上的 gedit。

我们建议使用 Vim,在这里我们简单的使用它,你可以在实验楼的课程 Vim编辑器 里深入学习。

键入 vim helloworld.py 来启动 Vim 并编辑 helloworld.py,启动后不要乱按键。

然后按 i 键进入插入模式,此时你可以看到左下角有 “插入” 两个字,现在你可以键入下面的代码了。

#!/usr/bin/env python3
print("Hello World!")

其中第一行的前两个字符 #! 称为 Shebang ,目的是告诉 shell 使用 Python 解释器执行其下面的代码。

然后按 Esc 键退出插入模式,再键入 :wq 回车,Vim 就会保存文件并退出。

要运行脚本文件 helloworld.py,还要为文件添加可执行权限:

$ chmod +x helloworld.py

然后执行脚本文件:

$ ./helloworld.py

3. 代码风格建议

在 Python 中,空格很重要,我们使用空格将标识符区分开,行开始处的空格我们称之为缩进,如果你的缩进是错误的,Python 解释器会抛出错误。例如下面情形:

>>> a = 12
>>> a = 12
File "<stdin>", line 1
a = 12
^
IndentationError: unexpected indent

这是因为第二行开始处出现了多余的空格,所以需要经常检查代码的缩进。

如果你在代码中混用制表符和空格,这种缩进错误会很常见。

所以如果是用空格,就一直用空格缩进,不要使用制表符。

建议遵守以下约定:

  • 使用 4 个空格来缩进
  • 永远不要混用空格和制表符
  • 在函数之间空一行
  • 在类之间空两行
  • 字典,列表,元组以及参数列表中,在 , 后添加一个空格。对于字典,: 后面也添加一个空格
  • 在赋值运算符和比较运算符周围要有空格(参数列表中除外),但是括号里侧不加空格:a = f(1, 2) + g(3, 4)

3. 注释

注释是一些文本用来解释此处代码是做什么的,写注释是为了使他人更容易理解代码。

Python 的注释以 # 字符开始的,在 # 字符到行尾之间的所有东西都被程序忽略为注释,也就说对程序没有任何影响。

>>> # 这是一个注释
>>> # 下面这一行是求两数之和
>>> a = 12 + 34
>>> print(a) # 这里也是注释 :)

注释主要面向的人群是开发人员和维护代码库的人员,所以如果你写了一些复杂代码,你应该写足够的注释在里面,以便让其他任何人能够通过你的注释读懂代码。你应该总是在 # 后跟一个空格,然后再写注释。你也可以做一些标准的注释,像下面这样。

# FIXME -- fix these code later
# TODO -- in future you have to do this

4. 模块

模块是包含了我们能复用的代码的文件,包含了不同的函数定义,变量。模块文件通常以 .py 为扩展名。

Python 本身在默认安装时就带有大量的模块。我们之后将会用到其中的一部分。在使用模块前先导入它。

>>> import math
>>> print(math.e)
2.71828182846

我们会在模块这个实验里学习更多有关模块的知识。

总结

完成本实验后,应当明白如何使用交互模式的 Python3 解释器,如何简单使用 vim 编写脚本文件并执行这个脚本文件,要特别注意的是,Python 使用缩进来定义语句块,缩进是 Python 语法的一部分,这与其它大多数语言不同。代码风格在本课程的第14个实验 PEP8 代码风格指南 有更为详细的讲述。注释的话,能使用英文建议使用英文。模块同样会在之后的实验里深入学习。

开始 Python 之旅的更多相关文章

  1. 【Python之旅】第六篇(七):开发简易主机批量管理工具

    [Python之旅]第六篇(七):开发简易主机批量管理工具 python 软件开发 Paramiko模块 批量主机管理 摘要: 通过前面对Paramiko模块的学习与使用,以及Python中多线程与多 ...

  2. Python 之旅

    Python2 之旅:   https://funhacks.net/explore-python/ <Python Cookbook>第三版   PYTHON3   http://pyt ...

  3. Python之旅Day1 数据类型初识(数字|字符串|列表|数据运算) 编码 表达式(if...else|for|while)

    初识PYTHON Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/), 是一种面向对象的解释型计算机程序设计语言,由荷兰人Guido van Rossum(吉多·范罗苏姆)于 ...

  4. python之旅:网络编程

    一 客户端/服务器架构 1.硬件C/S架构(打印机) 2.软件C/S架构 互联网中处处是C/S架构 如黄色网站是服务端,你的浏览器是客户端(B/S架构也是C/S架构的一种) 腾讯作为服务端为你提供视频 ...

  5. python之旅3

    1 collections系列 方法如下 class Counter(dict): '''Dict subclass for counting hashable items. Sometimes ca ...

  6. python之旅2

    python基础 1整数 查看整数类型的方法 >>> a = 1 >>> dir(a) ['__abs__', '__add__', '__and__', '__c ...

  7. python之旅【第二篇】

    1,文件操作 找到文件-----打开文件------文件操作-----------文件关闭 file_open = file(文件路径,模式) 读取文件: M.read() obj = M.readl ...

  8. python之旅【第一篇】

    python简介 python的起源 追溯Python语言的起源,是从20世纪90年代初由Guido van Rossum,在阿姆斯特丹,开发一个新的脚本解释程序.不知道Guido当初有没有想到,Py ...

  9. 【python】开始python之旅

    上午开始抽空学习python,具体内容如下: (1)安装了python 2.7 (2)安装了notepad ++,安装它之前,在notepad++和Sublime Text之间纠结了一下,baidu了 ...

随机推荐

  1. 【BZOJ3527】力(FFT)

    [BZOJ3527]力(FFT) 题面 Description 给出n个数qi,给出Fj的定义如下: \[Fj=\sum_{i<j}\frac{q_i q_j}{(i-j)^2 }-\sum_{ ...

  2. [BZOJ4071][APIO2015]八邻旁之桥

    BZOJ(这题是BZOJ权限题,有权限号的就去看看吧) Luogu(良心洛谷) 题目描述 一条东西走向的穆西河将巴邻旁市一分为二,分割成了区域\(A\)和区域\(B\). 每一块区域沿着河岸都建了恰好 ...

  3. Bzoj2946:[POI2000] 最长公共子串

    题面 求多个串的最长公共子串 Sol 套路,拼在一起,二分答案+后缀数组判定 把大于答案的\(height\)分组,然后计算出一个组内是否有所有串的后缀 由于串只有\(5\)个开个桶就好了 # inc ...

  4. Web前端有价值的博客文章汇总

    一.HTML 二.CSS 1.深入理解position和z-index属性 :https://www.cnblogs.com/zhuzhenwei918/p/6112034.html 2.BFC(清除 ...

  5. c#多线程同步之EventWaitHandle再次使用

    /// <summary> /// 文件传输器,用来获取全文文件,自动根据全文文件数量,开启一定数量的线程,采用生产者消费模式 /// </summary> public cl ...

  6. 面向对象和面向过程,python中的类class,python中程序的入口——main方法,

    1.程序入口,让main显现出来: print(__name__)#__name___是模块中的隐藏字段,当前模块运行的函数名 if __name__ == __main__ __main__() # ...

  7. 关于browser-sync(在多个设备上进行网页调试)的问题点总结

    最近在看响应式网站的开发视频,其中有一部分非常有用,就是在多个设备上进行网页调试,通过使用browser-sync来实现,具体的步骤可以参照官网(http://www.browsersync.cn/) ...

  8. mysql, sql sever , oracle

    一.sqlserver优点:易用性.适合分布式组织的可伸缩性.用于决策支持的数据仓库功能.与许多其他服务器软件紧密关联的集成性.良好的性价比等:为数据管理与分析带来了灵活性,允许单位在快速变化的环境中 ...

  9. IE浏览器URL中文传参,后端接收是乱码问题处理

    这个问题还是因为IE浏览器是国外产品,人家交流的主要语言是英语,中文不识别. 直接上代码,亲测无误. //判断是否是IE浏览器 function isIE() { var userAgent = na ...

  10. 网站转变风格的css变化

    网站换肤,是一个比较老的话题了,理论很清晰,就是要根据js 来变换文件加载的css文件,根据需求来加载不同的css文件,有了这个基础就很明确要怎么做了,但是实际上还要记录当前用户的cookie  保证 ...