比如说我写了三个py程序,main m1m2在main中导入了m1 在m1中导入了m2。那么,可以直接在main中用m2吗?

  模块就是一系列功能的集合体, 分为三大类:

    1. 内置模块 (python解释器提供的, 用C语言编写的模块)

      一个python文件本身就是一个模块, 文件名m.py, 模块名m

  模块其实分为四个通用类别,分别是:(关注1和3)

    1、使用纯Python代码编写的py文件

    2、包含一系列模块的包 (把一系列模块组织到一起的文件夹, 文件夹下有一个__init__.py文件, 该文件夹称为包)

    3、使用C编写并链接到Python解释器中的内置模块

    4、使用C或C++编译的扩展模块

  内置与第三方模块拿来就可以用, 无需定义, 这可以极大地提高开发效率.

    可以将程序的各部分功能提取出来放到一个模块中为大家共享使用, 好处是减少代码冗余, 程序组织结构更加清晰.

1. 首次导入模块会发生的三件事: 2. 产生foo.py的名称空间, 将foo.py运行过程中产生的名字丢到foo的名称空间中 3. 在当前文件中产生产生一个名字foo, 该名字指向2中产生的名称空间. 之后的导入, 都是引用首次导入产生的名称空间, 不会重复执行代码. 强调1: 模块名.名字, 是指明道姓地问某一个模块要名字对应的值, 不会与当前名称空间冲突. 强调2: 无论查看还是修改, 操作的都是模块本身, 以定义模块为准, 与调用位置无关. # 可以一行一行地写, 也可以用逗号隔开, 写在同一行, 但是不推荐写在同一行, 示例: # 4. 导入模块的规范 # 3. 程序员自定义模块 # 给导入的模块起个别名, 示例: # 当模块名比较长, 用起来比较麻烦时可以采用这种方法 # 6. 模块是第一类对象 # 可以当作返回值, 可以当作容器类数据的元素... # 7. 自定义模块的命名应该采用纯小写加下划线的风格(python3), python2中有些采用驼峰体的格式 # 8. 可以在函数内导入模块, 如果是在全局导入, 则导入的模块可以在全局使用, 如果在函数内导入, 则导入的模块只能在局部使用

一个py文件的两种用途:

  1. 当作py文件运行

  2. 当作模块被导入

import 导入模块在使用时必须加前缀:

优点: 肯定不会与当前名称空间中的名字冲突.

缺点: 加前缀显得麻烦.

  1. 产生一个模块的名称空间
  2. 运行foo.py将运行过程中产生的名字都丢到模块的名称空间中去
  3. 在当前名称空间拿到一个名字, 该名字对应模块名称空间中的某一个内存地址
缺点: 容易与当前名称空间混淆

循环导入, 如从m1导入m2, 从m2导入m1, 会导致报错.

解决方案一: 将名字前提

解决方案二: 如果导入的模块是给某个功能用的, 那么就不要在全局导入.

不过, 不推荐使用循环导入的方式.

1. 内存(内置模块)

2. 硬盘: 按照sys.path中存放的文件的顺序依次查找要导入的模块

  可以通过sys.modules查看已经加载到内存中的模块.

  导入的模块, 通过del不能从内存中删除; 在函数中导入的模块, 函数运行完毕后, 也不会从内存中回收.

如果导入模块不在sys.path中, 即导入模块与执行文件不在同一路径下, 则会报错, 为了避免这一问题, 可以采用以下方法将导入模块的路径追加到sys.path中.

编写一个模块时最好按照统一的规范去编写,如下:

#!/usr/bin/env python #通常只在lunix环境有效,作用是可以使用脚本名来执行,而无需直接调用解释器。

x=1 #定义全局变量,如果非必须,则最好使用局部变量,这样可以提高代码的易维护性,并且可以节省内存提高性能
 test() #在被当做脚本执行时,执行此处的代码
# 函数定义阶段, 对参数进行注释, 并对返回结果进行注释, 添加注释并不影响函数的运行.

本章重点介绍 Python 编程环境的搭建,包括各个平台下 Python 的下载和安装,常见 IDE 的使用,如何运行 Python 程序等。我还会亲自带着大家编写并运行第一个 Python 程序,让大家认识一下最简单的 Python 代码。

本章的后半部分还介绍了一下 Python 基础语法,包括注释、缩进、编码规范、标识符及命名规范、关键字等。

从本章开始,我们就正式开始学习 Python 代码了。

在 Windows 上安装 和安装普通软件一样简单,下载安装包以后猛击“下一步”即可。

C语言中文网的网址是:

输入完成以后注意保存。

运行 Python 源文件有两种方法:

字符串中可以包含英文、数字、中文以及各种符号。

print 输出字符串的格式如下:

字符串要放在小括号( )中传递给 print,让 print 把字符串显示到屏幕上,这种写法在 Python 中被称为函数(Function)。

需要注意的是,引号和小括号都必须在英文半角状态下输入,而且 print 的所有字符都是小写。Python 是严格区分大小写的,print 和 Print 代表不同的含义。

在 IDLE 下的演示效果:

也可以将多段文本放在一个 print 函数中:

注意,同一个 print 函数的字符串之间不会自动换行,加上\n才能看到换行效果。


图 2 将多个字符串放在一个 print 中

有编程经验的读者应该知道,很多编程语言(比如C语言、、 等)都要求在语句的最后加上分号;,用来表示一个语句的结束。但是 Python 比较灵活,它不要求语句使用分号结尾;当然也可以使用分号,但并没有实质的作用(除非同一行有更多的代码),而且这种做法也不是 Python 推荐的。

修改上面的代码,加上分号:

注意第 2 行代码,我们将两个 print 语句放在同一行,此时必须在第一个 print 语句最后加分号,否则会导致语法错误。

我建议大家加上小括号,这样写比较容易理解,而且兼容性好。

print 除了能输出字符串,还能输出数字,将数字或者数学表达式直接放在 print 中就可以输出,如下所示:

注意,输出数字时不能用引号包围,否则就变成了字符串。下面的写法就是一个反面教材,数学表达式会原样输出:

另外,和输出字符串不同,不能将多个数字放在一个 print 函数中。例如,下面的写法就是错误的:

Python 程序的写法比较简单,直接书写功能代码即可,不用给它套上“外壳”。下面我们分别使用C语言、Java 和 Python 输出C语言中文网的网址,让大家对比感受一下。

IDE 是 Integrated Development Environment 的缩写,中文称为集成开发环境,用来表示辅助程序员开发的应用软件,是它们的一个总称。

通过前面章节的学习我们知道,运行 C 语言(或 语言)程序必须有编译器,而运行 语言程序必须有解释器。在实际开发中,除了运行程序必须的工具外,我们往往还需要很多其他辅助软件,例如语言编辑器、自动建立工具、除错器等等。这些工具通常被打包在一起,统一发布和安装,例如 PythonWin、MacPython、PyCharm 等,它们统称为集成开发环境(IDE)。

因此可以这么说,集成开发环境就是一系列开发工具的组合套装。这就好比台式机,一个台式机的核心部件是主机,有了主机就能独立工作了,但是我们在购买台式机时,往往还要附带上显示器、键盘、鼠标、U盘、摄像头等外围设备,因为只有主机太不方便了,必须有外设才能玩的爽。

需要注意的是,虽然有一些 IDE 支持多种程序语言的开发(如 Eclipse、NetBeans、VS),但通常来说,IDE 主要还是针对某一特定的程序语言而量身打造的(如 VB)。

一般情况下,程序员可选择的 IDE 类别是很多的,比如说,用 Python 语言进行程序开发,既可以选用 Python 自带的 IDLE,也可以选择使用 PyCharm 和 Notepad++ 作为 IDE。并且,为了称呼方便,人们也常常会将集成开发环境称为编译器或编程软件,对此读者没必要较真儿,就把它当做“乡间俗语”吧。

百度搜索“Python IDE”会发现支持 Python 编程的 IDE 有很多,那么对于零基础的初学者,应该使用哪款 IDE 呢?

我个人推荐初学者使用 Python 自带的 IDLE。因为 IDLE 的使用方法很简单,非常适合初学者入门。本教程中使用的也是 Python 自带的 IDLE。

当然,除了 IDLE,还有很多其他的 IDE 供大家选择,这里列出常用的几个,喜欢探索的读者可自行安装使用。

PyCharm 具有语法高亮显示、Project(项目)管理代码跳转、智能提示、自动完成、调试、单元测试以及版本控制等一般开发工具都具有的功能,除此之外,它还支持 Django(Python 的 Web 开发框架)框架下进行 Web 开发。

PyCharm 开发工具可通过其官方网站(/pycharm/)下载获取。需要注意的是,该网站提供了 2 个版本,一个是社区版(免费并且提供源代码,适合多数读者),另一个是专业版(免费试用)。

有关 PyCharm 下载和安装,可阅读《》一节,至于如何使用 PyCharm 运行 Python 程序,可阅读《》一节。

Eclipse 是一个开源的、基于 Java 的可扩展开发平台,最初主要用于 Java 语言的开发。该平台可通过安装不同的插件,进行不同语言的开发。

PyDev 是一款功能强大的 Eclipse 插件,它可以提供语法高亮、语法分析、语法错误提示,以及大纲视图显示导入的类、库和函数、源代码内部的超链接、运行和调试等功能。

当 Eclipse 在安装 PyDev 插件后,就可以进行 Python 应用开发。其开发界面如图 2 所示。

有关 Eclipse+PyDev 下载和安装,可阅读《》一节,至于如何使用安装有 PyDev 插件的 Eclipse 编写并运行 Python 程序,可阅读《》一节。

VS Code 支持几乎所有主流开发语言的语法高亮、智能代码补全、自定义热键、括号匹配等功能,支持使用插件进行功能扩展,还针对网页开发和云端应用开发做了优化。

值得一提的是,使用 VS Code 编写 Python 代码,无需向其它编译器那样,通过创建项目来管理源代码文件,在 VS Code 中可以直接创建 Python 源代码文件。VS code 的开发界面如图 3 所示。

有关 VS Code 下载和安装,可阅读《》一节,至于如何使用 VS Code 编写并运行 Python 程序,可阅读《》一节。

进入 (如图 2 所示),可以看到 PyCharm 有 2 个版本,分别是 Professional(专业版)和 Community(社区版)。其中,专业版是收费的,可以免费试用 30 天;而社区版是完全免费的。

强烈建议初学者使用社区版,更重要的是,该版本不会对学习 Python 产生任何影响。

根据图 2 所示点击“下载”按钮,等待下载完成。下载完成后,读者会得到一个 PyCharm 安装包(本节下载的是 pycharm-community-/python/")

说明单行代码的功能时一般将注释放在代码的右侧,例如:

对于前两行代码,Python 没有将这里的三个引号看作是多行注释,而是将它们看作字符串的开始和结束标志。

对于第 3 行代码,Python 也没有将井号看作单行注释,而是将它看作字符串的一部分。

给代码添加说明是注释的基本作用,除此以外它还有另外一个实用的功能,就是用来调试程序。

举个例子,如果你觉得某段代码可能有问题,可以先把这段代码注释起来,让 Python 解释器忽略这段代码,然后再运行。如果程序可以正常执行,则可以说明错误就是由这段代码引起的;反之,如果依然出现相同的错误,则可以说明错误不是由这段代码引起的。

在调试程序的过程中使用注释可以缩小错误所在的范围,提高调试程序的效率。

和其它程序设计语言(如 、C 语言)采用大括号“{}”分隔代码块不同, 采用代码缩进和冒号( : )来区分代码块之间的层次。

在 Python 中,对于类定义、函数定义、流程控制语句、异常处理语句等,行尾的冒号和下一行的缩进,表示下一个代码块的开始,而缩进的结束则表示此代码块的结束。

注意,Python 中实现对代码的缩进,可以使用空格或者 Tab 键实现。但无论是手动敲空格,还是使用 Tab 键,通常情况下都是采用 4 个空格长度作为一个缩进量(默认情况下,一个 Tab 键就表示 4 个空格)。

例如,下面这段 Python 代码中(涉及到了目前尚未学到的知识,初学者无需理解代码含义,只需体会代码块的缩进规则即可):

但我们应尽量避免使用汉字作为标识符,这会避免遇到很多奇葩的错误。

标识符的命名,除了要遵守以上这几条规则外,不同场景中的标识符,其名称也有一定的规范可循,例如:

  • 当标识符用作模块名时,应尽量短小,并且全部使用小写字母,可以使用下划线分割多个字母,例如 game_mian、game_register 等。
  • 当标识符用作包的名称时,应尽量短小,也全部使用小写字母,不推荐使用下划线,例如 /python/" #将print作为变量名

我要回帖

更多关于 py web 的文章

 

随机推荐