导入Python标准库
import xxx as yyyy
from xxx import yyy as zzz
c/c++/java/c#都有main函数,但是python是脚本语言,解释执行,先到的代码先解释先执行,并没有统一的入口
-
问:如何实现导入的自定义python模块里只执行部分指定方法,不执行其他方法?
- 当直接运行时,——name——就是——main——;当被当模块引用时,——name——等于——模块名——。这就实现内外有别
-
PI = 3.14 def paraTest(): print("PI=", PI) if __name__ == '__main__': paraTest()
模型搜索路径 Model search path
import sys
sys.path
home_dir = '/Users/luozw/Movies'
sys.path.append(home_dir)
sys.path
比如我们讲home_dir加入sys.path路径,那么这个home_dir里的python可以作为模块直接导入
模块包package
一个包就是包含若干模块的文件夹
一个模块可以理解为一个.py文件
包是python用来组织命名空间namespace和类的重要媒介
常用的内置模块
-
collections --- 容器数据类型,高性能容器
-
namedtuple()创建命名元组子类的工厂函数 deque类似列表(list)的容器,实现了在两端快速添加(append)和弹出(pop) ChainMap类似字典(dict)的容器类,将多个映射集合到一个视图里面 Counter字典的子类,提供了可哈希对象的计数功能 OrderedDict字典的子类,保存了他们被添加的顺序 defaultdict字典的子类,提供了一个工厂函数,为字典查询提供一个默认值 UserDict封装了字典对象,简化了字典子类化 UserList封装了列表对象,简化了列表子类化 UserString封装了字符串对象,简化了字符串子类化
-
-
datetime模块
-
JSON模块
- 全部小写:json
-
函数 描述 json.dumps 将 Python 对象编码成 JSON 字符串 json.loads 将已编码的 JSON 字符串解码为 Python 对象 -
Python JSON dict object list, tuple array str, unicode string int, long, float number True true False false None null
-
random模块
-
random.random() 0-1
-
random.uniform(10, 20) 10-20
- 小技巧:random.uniform? === -h
-
random.randint(1, 100) [1-100] 整数
-
print( random.randrange(1,100,2) ) # 生成从1到100的间隔为2的随机整数 [1,100)
-
random.choice(list)
-
random.choices(list, 3) # 挑3个出来,放回采样
-
random.sample(list, 3) #一次性抽取3个,返回结果是list
-
random.shuffle(list) #打乱排序
-
import string
import random
# string.printable()搞出一个list,然后choices7个出来,再“”join成string,然后for range 500遍
coupon_dict = {"".join(random.choices(string.printable[:62], k = 7)) : 1 for _ in range(500)}
import json
with open('coupon.json', 'w') as f:
json.dump(coupon_dict, f)