Python之第二十二天的努力--模块2,random模块

01 模块回顾

'''
自定义模块
'''

age = 10

def f1():
    print('hello')


# 测试函数,在开发阶段,对模块中的功能进行测试
def main():
    print(age)
    f1()



# 可以快速生成
if __name__ == '__main__':
    main()

02 模块2

  1. 导入模块的多种模式:

    • import xxx :导入一个模块的所有成员
    • import aaa,bbb... : 一次性导入多个模块的成员。不推荐这种写法,分开写。import os,sys
    • from xxx import a : 从某个模块中导入指定的成员。
    • from xxx import a,b,c... : 从某个模块中导入多个成员。
    • from xxx import * : 从模块中导入所有成员。
  2. import xxx 和from xxx import * 的区别

    • 第一种方式在使用其中成员时,必须使用模块名作为前缀。不容易产生命名冲突。

      # 使用import xxx 导入
      import my_module
      print(my_module.age)
      
    • 第二种方式在使用其中成员时,不用使用模块名作为前缀,直接使用成员名即可。但是容易产生命名冲突。在后定义的成员生效(把前边的覆盖了)

      from my_module import age
      print(age)
      
  3. 怎么解决名称冲突的问题

    • 改用 import xxx 这种方式导入。
    • 自己避免使用同名
    • 使用别名解决冲突
  4. 使用别名:alias

    • 给成员起别名,避免名称冲突。

      # 使用别名避免命名冲突
      from my_module import age as a
      age = 1000
      print(age)      # 1000
      print(a)        # 10
      
    • 给模块起别名,目的简化书写。

      # 给模块起别名
      import my_module as m
      print(m.age)        # 10
      m.f1()              # hello
      
  5. from xxx import * 控制成员被导入

    • 默认情况下,所有的成员都会被导入。

      __all__是一个列表,用于表示本模块可以被外界使用的成员。元素是成员名的字符串。

      # 使用__all__ 控制被导入的成员
      __all__ = ['age','age2']
      
      age = 10
      
      age2 = 20
      
      age3 = 30
      
      # 验证__all__控制的成员
      from my_module import *
      print(age)      # 10
      print(age2)     # 20
      print(age3)     # 报错
      
    • __all__只是对 from xxx import * 这种导入方式生效,其余的方式都不生效。

  6. 相对导入

    • 针对某个项目中的不同模块之间进行导入,称为相对导入。

    • 只有一种模式:

      from 相对路径 import xxx

      相对路径:包含了点号的一个相对路径。

      . 表示的是当前路径。

      .. 表示的是父路径。

      ... 表示的是父路径的父路径

    • # 相对导入同一个项目下的模块
      from ..z import zz          # 容易向外界暴露zz模块
      
      from ..z.zz import *0
      

03 常用模块:random

此模块提供了和随机数获取相关的方法:

  • random.random() : 获取 [0.0,1.0) 范围内的浮点数
  • random.randint(a,b) : 获取[a,b]范围内的一个整数
  • random.uniform(a,b) : 获取 [a,b) 范围内的浮点数
  • random.shuffle(x) : 把参数指定的数据中的元素打乱。参数必须是一个可变的数据类型。
  • random.sample(x,k) : 从x中随机抽取k个数据,组成一个列表返回。
import random
# 获取  [0.0,1.0)  范围内的浮点数
print(random.random())


# 获取  [a,b)  范围内的浮点数
print(random.uniform(3,5))


# 获取[a,b]范围内的一个整数
print(random.randint(3,5))


# 把参数指定的数据中的元素打乱。参数必须是一个可变的数据类型。
lst = list(range(10))
random.shuffle(lst)
print(lst)


# 从x中随机抽取k个数据,组成一个列表返回。
t = (1,2,3)
t1 = random.sample(t,len(t))
print(t1)

猜你喜欢

转载自www.cnblogs.com/szheng/p/13199641.html