列表
列表就像是数组
在python 创建一个列表时, 解释器会在内存中创建一个类似数组的数据结构来存储数据, 数据项自下而上(形成一个堆栈), 类似于其他编程语言中的数组.
列表中常用方法:
cast = ["a", "b", "c", "d"]
len(cast)
cast.append("e")
cast.pop() #尾巴出栈(栈顶)
cast.extend(["f","g"]) # 扩展一个列表从另一个列表.
cast.remove("c")
cast.insert(0, "-a")
另外, python 的列表可以随需要伸缩, 所以, 不支持越界检查.
嵌套列表的输出问题
可以使用 isinstance() 判断是否是一个列表, 例如:
cast = ["aa", "bb"]
isinstance(cast, list) # 返回 true
当 movies 是多层列表时:
def print_list_nested(the_list):
for each_item in the_list:
if isinstance(each_item, list):
print_list_nested(each_item)
else:
print(each_item)
print_list_nested(movies)
模块共享
PYPI : 第三方模块的存放处.
注释技术: 在 python中, 一个常用的注释技术是使用一个三重引号来建立多行注释, 如果使用了一个三重引号, 而没有将它赋值给一个变量, 三重引号之间的所有内容都被认为是一个注释:
发布模块
1. 创建一个文件夹, 将上边带递归函数的 neseter.py 文件复制到文件夹中. 为简单起见, 文件夹命名为 nester
2. 在文件夹中新建一个名为 "setup.py" 的文件. 这个文件包含元数据信息
from distutils.core import setup
setup {
name = 'nester',
version = '1.0.0',
py_modules = ['nester'],
author = 'haha',
author_email = 'haha@haha.com'
url = 'www.haha.com'
description = 'test',
}
3. 构建一个发布, python3 setup.py sdist(要在 nester文件夹中)
4. 将发布安装到你的 python 的本地副本中,任然在终端窗口(nester目录下) sudo python3 setup.py install
导入模块, import nester, 需要搜寻路径(import sys, sys.path)
python模块的命名空间
python中的所有代码都与一个命名空间关联. 主python程序中的代码与一个名为__main__的命名空间关联.将代码放在其单独的模块中时, python会自动创建一个与模块同名的命名空间, 所以, 你的模块中的代码会与一个名为nester的命名空间关联. nester.print_list_nested(cast)
另外, 与编译类型的语言不同, Python在运行之前并不全面检查代码的合法性. 这使得python可以做很多在其他语言中无法做到的很酷的事情, 如在运行时动态的定义函数.