我是靠谱客的博主 可耐裙子,这篇文章主要介绍python 编程-- coding: UTF-8 ---- coding: UTF-8 ---- coding: UTF-8 ---- coding: UTF-8 ---- coding: UTF-8 --,现在分享给大家,希望可以做个参考。

Python 语言通过模块(module)来组织代码。Python 标准库十分庞大,由C语言编写的内置模块,和由 Python 编写的解决常见开发需求的模块。下面的Python数组列举了常用标准库。

python_modules = [
“os — 多种操作系统接口”,
“os.path — 常用路径操作”,
“re — 正则表达式操作”,
“datetime — 基本日期和时间类型”,
“heapq — 堆队列算法”,
“enum — 对枚举的支持”,
“math — 数学函数”,
“random — 生成伪随机数”,
“itertools — 为高效循环而创建迭代器的函数”,
“functools — 高阶函数和可调用对象上的操作”,
“shutil — 高阶文件操作”,
“sqlite3 — SQLite 数据库 DB-API 2.0 接口模块”,
“csv — CSV 文件读写”,
“hashlib — 安全哈希与消息摘要”,
“hmac — 基于密钥的消息验证”,
“time — 时间的访问和转换”,
“argparse — 命令行选项、参数和子命令解析器”,
“logging — Python 的日志记录工具”,
“threading — 基于线程的并行”,
“multiprocessing — 基于进程的并行”,
“socket — 底层网络接口”,
“email — 电子邮件与 MIME 处理包”,
“json — JSON 编码和解码器”,
“urllib — URL 处理模块”,
“http — HTTP 模块”
]

使用 import 相关的语句可以引入 Python 标准库模块。特别地,import 可以被动态的从任何地方调用。

以下导入模块的用法中,错误的选项是?

A.
import time.time

if name == ‘main’:
print(time())

B.
if name == ‘main’:
import math
print(math.ceil(1.3333))

C.

from os import path

if name == ‘main’:
print(path.abspath(‘.’))

D.

import datetime as dt

if name == ‘main’:
print(dt.datetime.now())
考题2:使用Python 包(package)组织代码
稍微正式一点的项目,都会通过将代码组织成有层次结构的组织,以便于管理和持续维护。Python 通过包(package)的方式来组织代码,包是一种特殊的模块(module)。

Python 的包有两种形式,分别是Regular packages 和 namespace packages。

所谓 Regular packages 就是指含有__init__.py的目录,这样的包被其他模块导入的时候,会先执行目录下__init__.py里的代码。Regular packages 可以嵌套,也就是目录下的子目录也可以是一个包。例如:

python_package_dir_example = ‘’’
parent/
init.py
one/
init.py
one/
init.py
two/
init.py
three/
init.py
‘’’

而 namespace packages 也是有层次结构的模块组织,不过它未必是存在文件夹里的,可以存在Zip压缩包里,也可以存在网络上,而且子包和父包也未必要存储在同一个地方。这里忽略不展开。

假设parent/init.py 里的代码是:

-- coding: UTF-8 --

print(‘从前有座山,’)
假设parent/one/init.py 里的代码是:

-- coding: UTF-8 --

print(‘山上有座庙,’)
假设parent/one/one/init.py 里的代码是:

-- coding: UTF-8 --

print(‘庙里有个老和尚,’)
假设parent/two/init.py 里的代码是:

-- coding: UTF-8 --

print(‘老和尚说:’)
假设parent/three/init.py 里的代码是:

-- coding: UTF-8 --

print(‘从前有座山,’)

如果一个模块被import过,Python 会将导入的模块缓存在sys.modules字典里缓存起来,再次导入的时候不会重新执行导入动作,直接从缓存里取。反之,如果我们从sys.modules里把导入的模块删除,则再次import会再次触发模块导入动作。
利用以上知识,我们的目标是通过 import 语句导入模块,触发每个包目录下__init__.py加载时执行print语句,从而循环打印出:

从前有座山,
山上有座庙,
庙里有个老和尚,
老和尚说:
从前有座山,
山上有座庙,
庙里有个老和尚,
老和尚说:
从前有座山,

以下导入模块的用法中,不能循环打印出上述绕口令的选项是?

A.

import sys

if name == ‘main’:
while True:
import parent
import parent.one.one
import parent.two

复制代码
1
2
3
4
del sys.modules['parent'] del sys.modules['parent.one.one'] del sys.modules['parent.two']

B.

import sys

if name == ‘main’:
while True:
import parent.one.one
del sys.modules[‘parent.one.one’]

复制代码
1
2
3
4
5
6
7
8
9
import parent.one del sys.modules['parent.one'] import parent.two del sys.modules['parent.two'] import parent del sys.modules['parent']

C.

import sys

if name == ‘main’:
while True:
import parent.one.one
import parent.two
import parent.three

复制代码
1
2
3
4
5
del sys.modules['parent.one'] del sys.modules['parent.one.one'] del sys.modules['parent.two'] del sys.modules['parent.three']

D.

import sys

if name == ‘main’:
while True:
import parent
import parent.one
import parent.one.one
import parent.two

复制代码
1
2
3
4
5
del sys.modules['parent'] del sys.modules['parent.one'] del sys.modules['parent.one.one'] del sys.modules['parent.two']

最后

以上就是可耐裙子最近收集整理的关于python 编程-- coding: UTF-8 ---- coding: UTF-8 ---- coding: UTF-8 ---- coding: UTF-8 ---- coding: UTF-8 --的全部内容,更多相关python内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部