包(文件夹)和模块(文件)

包和模块

模块

  • 模块

python中一个py文件就是一个模块

  • 模块使用
"""
前提: 被使用的模块的模块名(py文件的文件名)必须符合变量名的要求(是标识符, 不是关键字)
能被使用的内容: 所有的全局变量
怎么用: 使用别的模块中的内容前必须先导入模块
"""
  • 导入模块
"""
1) import 模块名 - 导入指定模块; 导入后可以通过'模块名.xxx'的方式使用模块中所有全局变量
2) from 模块名 import 变量名1, 变量名2, ... - 导入指定模块指定变量; 导入后可以直接使用指定变量
3) form 模块名 import * - 导入指定模块中所有的变量; 导入后可以直接使用所有变量
4) import 模块名 as 新模块名 - 直接导入指定模块并且对模块进行重命名, 用新模块名代替原模块名使用模块
5) from 模块名 import 变量名 as 新变量名1, 变量名2, 变量名3 as 新变量名3...
"""

导入原理与阻止导入

  • 导入原理
"""
不管以什么样的方式导入模块, 导入模块的时候系统会自动进入模块, 执行模块中所有的代码
"""
  • 阻止导入
"""
因为在导入模块的时候默认会执行模块中所有的代码, 就会导致有些完全没有必要在导入的时候执行的代码被执行
阻止导入 - 如果希望导入模块的时候, 某些代码可以不执行, 就需要取阻止代码在被导入的时候执行
阻止方法 - 在被导入的模块内部进行特殊处理: 需要阻止的代码放到if __name__ == '__main__'条件语句里面
                                        (如果不是作为主程序执行就不执行)
"""

存放_init_.py文件的文件夹

  • 使用包(文件夹)中的内容
"""
方法1: import 包名 - 直接导入包, 导入后可以通过包.xx的方式直接使用__init__.py中所有内容
方法2: import 包名.模块名 - 导入指定包中的指定模块, 导入后可以通过'包名.模块名.xxx'来使用指定模块中的所有全局变量
方法3: from 包名 import 模块名1 as 新模块名1, 模块名2, 模块名3 as 新模块名3, ...(使用:模块名.模块中的全局变量)     
方法4: from 包名 import 变量名1 as 新变量名1, 变量名2, 变量名3, ...(__init__.py中的全局变量)
       注意: from 包名 import * - 导入包中__init__.py文件中所有的全局变量
方法5: from 包名.模块名 import 变量名1 as 新变量名1, 变量2, ... - 导入指定模块中的指定全局变量
"""

数学模块

math - 普通数字对应的数学模块

cmath - 复数对应的数学模块

补充复数 - python支持复数

格式: a + bj

  • 浮点转整数
  1. int(浮点数) - 去尾取整(直接保留整数部分)
  2. math.ceil(浮点数) - 向大取整
  3. math.floor(浮点数) - 向小取整
  4. round(浮点数) - 四舍六入五成双
  • 求绝对值
  1. abs(数字) - 系统函数, 原数据类型
  2. fabs(数字) - 都会变成浮点数

随机模块

  • 创建随机整数: randint(a, b) - 产生[a, b]的随机整数

  • 创建随机小数:random() - 产生[0, 1)的随机小数

  • 在指定的等差数列中随机获取一个数: randrange(M, N, step), 随机取值范围[M, N)

  • 洗牌: shuffle(列表) - 将列表中元素的顺序随机打乱

  • 抽牌:

    1. choice(序列) - 从指定序列中随机获取一个元素(有放回)

    2. 抽多张牌, 有放回, choices()

      choices(序列) - 从指定序列中随机获取一个元素, 返回值为列表

      choices(序列, k=次数) - 从指定序列列中随机获取指定个数元素, 返回值为列表

      choices(序列, k=次数, weight=权重列表) - 规定指定序列中的元素权重, 并从指定序列中随机获取指定个数元素, 返回值为列表

    3. 无放回 - 3.9以前版本只有两个参数, 少了个counts

      random.sample(序列, k=次数, counts=权重列表)

time模块

  • time() - 获取当前时间, 返回的是时间戳
"""
时间戳 - 通过保存一个时间到1970年1月1日0时0分0秒(格林威治时间)之间的时间差(单位: 秒)来保存一个时间值

使用时间戳保存时间的好处: 
    a. 节约内存
        '2022-4-27 17:43:00' - 18个字节的内存
        4个字节 + 浮点 + 3个字节
    b. 方便加密
"""
  • locatime() - 获取本地当前时间, 返回的是结构体时间
  • locatime(时间戳) - 将时间戳转换成结构体时间(本地的)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值