图|源自网络
文|一张顾巷
初识交互式编程、脚本式编程
//交互式编程// 交互式编程 不需要创建脚本文件 ,通过 Python 解释器的交互模式即可编写代码。 Window 上在安装 Python 时已经安装了交互式编程客户端,提示窗口如下:在 python 提示符中输入文本“Hello, Python!”,然后按 Enter 键即可查看运行效果:
>>> print ("Hello, Python!")
,以上实例输出结果如下:
Hello, Python!
//脚本式编程//
脚本式编程是通过脚本参数调用解释器执行脚本。所有 Python 文件将以 .py 为扩展名。
让我们写一个简单的 Python 脚本程序。将上文中的print(“Hello, Python!”)拷贝至 test.py 文件中。
假设你已经按第一篇中的步骤,正确设置了 Python 解释器 PATH 变量。使用以下命令运行程序:
$ python test.py
输出结果:
Hello, Python!
基础语法
//标识符及命名规则//标识符只可由字母、数字、下划线组成。但不能以数字开头。
标识符区分大小写。
命名不能占用python关键字
import keywordprint(keyword.kwlist)
以下划线开头的标识符是有特殊意义的。
以单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入。
以双下划线开头的 _foo 代表类的私有成员,以双下划线开头和结尾的 _foo 代表 Python 里特殊方法专用的标识,如 __init__()代表类的构造函数。
//命令行参数//
很多程序可以执行一些操作来查看一些基本信息,Python 可以使用 -h 参数查看各参数帮助信息:
$ python -h
usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ... Options and arguments (and corresponding environment variables): -c cmd : program passed in as string (terminates option list) -d : debug output from parser (also PYTHONDEBUG=x) -E : ignore environment variables (such as PYTHONPATH) -h : print this help message and exit [ etc. ]
我们在使用脚本形式执行 Python 时,可以接收命令行输入的参数,具体使用可以参照 Python 命令行参数。
//行&缩进// Python不像其他编程语言,可以通过大括号{}来对代码块进行划分,只能通过 缩进 来对 语句 进行 分组 ,所谓的缩进就是每行代码前的 空白间隙 。 相同的空白间隙表示这些语句处于同一个层级,所以正确的缩进就显得非常重要,建议使用 Tab来进行缩进。 此外,如果你想 多个语句写到同一行, 可以使用; 分号 进行分隔。 有时 语句太长 ,你还可以使用 \反斜杠 来衔接,而在 []{}()里分行不需要反斜杠衔接!注释与模块
//注释//注释是一段 「解释性」文本,程序运行时,会跳过不做处理,一般是对代码的解释或提示,以此提高代码的可读性。写注释既方便了别人阅读代码,也方便自己日后回顾,而不用苦思冥想当初写这段代码的目的。当然注释也不是写的越多越好,应 尽量避免没用的注释或写过多的废话。Python中提供了两种注释方式:「 单行注释 」和「 多行注释 」,单行注释通过#进行标识,多行注释则通过 两个三引号 来标识,代码示例如下:
# 一个单行注释
"""多行注释示例"""
//模块//
- 模块的基本使用
举个简单例子,你可以把 常用的代码块抽取出来 放到一个单独的py文件中,然后在用到的地方对自己的模块进行引用,模块引用示例如下:
# 导入整个模块import sys# 导入模块中的需要用到的部分from sys import argv# 多个的时候可以用逗号隔开from urllib.error import URLError, HTTPError# 导入模块中所有不是以下划线开头的名字,不建议这样做,如果同名会覆盖# 定义过的名字;如果你硬想用这种导入方式,可以添加__all__成员来进行约束# 比如:__all__ = ['a','b']from sys import *
另外,在导入自己的模块时,可能遇到这个问题:写在模块里的测试代码都执行了???
可以通过内置属性 __name__ 来区分,当此模块作为程序运行时, 值 会等于 __main__ , 而作为一个模块导入到其他程序,值则 等于文件名字 (去掉.py)。 所以可以通过判断: __name__ 是否 等于 __main__ 来决定测试代码是否执行。示例如下:if __name__ == '__main__': test()
- 模块的搜索路径与顺序
- 重复导入一个模块后会怎样
- __init__.py文件的作用
- 模块的重载
from imp import reloadreload(模块名)