开始 Python 之旅

开始 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 代码风格指南 有更为详细的讲述。注释的话,能使用英文建议使用英文。模块同样会在之后的实验里深入学习。

时间: 2025-01-02 15:48:11

开始 Python 之旅的相关文章

day1-开启python之旅

1.python安装Anaconda安装地址:https://www.anaconda.com/2.Pycharm安装 Pycharm安装地址:https://www.jetbrains.com/pycharm/3.安装环境测试 python3.6.2+Pycharm:4.建立项目及新建.py文件并打印输输出 print('hello world') 准备就绪,开始python之旅吧 原文地址:http://blog.51cto.com/13803166/2128333

Python之旅(七)面向对象

三大编程范式 三大编程范式(这三者各有千秋,不分好坏): 面向过程编程 函数式编程 面向对象编程 面向过程编程 “面向过程”(Procedure Oriented)是一种以过程为中心的编程思想. 过程是指解决问题的步骤.例如问题:如何把大象放入一个冰箱?步骤:先打开冰箱,在将大象放入冰箱,最后关上冰箱.面向过程是一种较机械式的思维方式. 优点: 复杂的问题流程化,进而简单化(一个复杂的问题,分成一个个小的步骤去实现,实现小的步骤将会非常简单). 性能比面向对象高,因为类调用时需要实例化,比较消耗

python之旅六【第六篇】模块

json和pickle 用于序列化的两个模块 json,用于字符串 和 python数据类型间进行转换pickle,用于python特有的类型 和 python的数据类型间进行转换 json模块提供了四个功能:dumps.dump.loads.loadpickle模块提供了四个功能:dumps.dump.loads.load json dumps把数据类型转换成字符串 dump把数据类型转换成字符串并存储在文件中  loads把字符串转换成数据类型  load把文件打开从字符串转换成数据类型

python之旅2

python基础 1整数 查看整数类型的方法 >>> a = 1 >>> dir(a) ['__abs__', '__add__', '__and__', '__class__', '__cmp__', '__coerce__', '__delattr__', '__div__', '__divmod__', '__doc__', '__float__', '__floordiv__', '__format__', '__getattribute__', '__getn

【Python之旅】第五篇(四):基于Python Sockct多线程的简版SSH程序

还是继续延续篇五中前三节的例子,通过对代码的修修补补,把它改成一个可以在连接后就能在Client端执行Server端命令的程序,所以就有点类似于SSH连接程序了. 至于还是用前面的例子来改嘛,是因为上课也一直这么干,而且老师也讲得非常不错,自己吸收后也作为一个学习的记录吧,因为确实是非常不错的! 之所以能对前面的例子如这样的修改,应当有这样的思想:前面的例子中,Server端能够返回Client端输入的字符串,那么如果Client端输入的是Linux的shell命令,Server端是否可以执行这

【Python之旅】第五篇(一):Python Socket通信原理

只要和网络服务涉及的,就离不开Socket以及Socket编程,下面就说说Python Socket通信的基本原理. 1.Socket socket也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄.应用程序通常通过"套接字"向网络发出请求或者应答网络请求.可以列举中国移动或者是中国电信等的电话客服,当然,也可以看下面的图片来作形象的说明. socket起源于Unix,而Unix/Linux基本哲学之一就是:一切皆文件,即都可以用"打开open-

【Python之旅】第五篇(二):Python Socket单线程+阻塞模式

前面第五篇(一)中的一个Socket例子其实就是单线程的,即Server端一次只能接受来自一个Client端的连接,为了更好的说明socket单线程和阻塞模式,下面对前面的例子做修改. 1.单线程+阻塞+交互式 前面的例子是单线程阻塞和非交互式的,现在改写为交互式的,即不会执行一次就结束,希望达到的效果是,发送的数据由User输入,然后Server端进行接收. Server端:与上个例子一样,并没有什么变化 import socket                #导入socket类   HO

【Python之旅】第三篇(一):Python函数

说明: 使用函数可以使程序实现功能模块化,大大简洁我们的程序,这里主要讨论Python中函数的下列内容: 1.函数定义与函数参数 2.局部变量和全局变量 3.函数默认参数和关键参数 4.*Args和**Kargs 因为函数部分内容跟C语言中的很多内容都十分相似,所以会结合C语言来进行对比学习. 1.函数定义与函数参数 --基本格式1:不参参数 ·定义: def sayHi():     print "Hello!" ·调用: >>> sayHi() Hello --基

【Python之旅】第二篇(九):迭代器

说明:关于Python中迭代器的解释 Iterator是迭代器的意思,它的作用是一次产生一个数据项,直到没有为止.这样在 for 循环中就可以对它进行循环处理了.那么它与一般的序列类型(list, tuple等)有什么区别呢?它一次只返回一个数据项,占用更少的内存.但它需要记住当前的状态,以便返回下一数据项.它是一个有着next()方法的对象.而序列类型则保存了所有的数据项,它们的访问是通过索引进行的. 举个前面的例子来说就像readlines和xreadlines的区别,readlines是一