zoukankan      html  css  js  c++  java
  • 4/8 包/常用模块

    1 包是模块的一个集合体,在使用包的时候也是有3个生成。

    1 产生一个包的名称空间
    2 执行包下的__init__.py文件,将产生的名字存放于包的名称空间中
    3 在当前执行文件中拿到一个名字aaa,该名字指向包的名称空间

    在生成包的时候需要在包的文件夹下面有一个__init__.py的文件。

    为何要使用包

    包的本质就是一个文件夹,那么文件夹唯一的功能就是将文件组织起来
    随着功能越写越多,我们无法将所以功能都放到一个文件中,于是我们使用模块去组织功能,而随着模块越来越多,我们就需要用文件夹将模块文件组织起来,以此来提高程序的结构性和可维护性

    使用包的注意事项

    #1.关于包相关的导入语句也分为import和from ... import ...两种,但是无论哪种,无论在什么位置,在导入时都必须遵循一个原则:凡是在导入时带点的,点的左边都必须是一个包,否则非法。可以带有一连串的点,如item.subitem.subsubitem,但都必须遵循这个原则。但对于导入后,在使用时就没有这种限制了,点的左边可以是包,模块,函数,类(它们都可以用点的方式调用自己的属性)。
    
    #2、import导入文件时,产生名称空间中的名字来源于文件,import 包,产生的名称空间的名字同样来源于文件,即包下的__init__.py,导入包本质就是在导入该文件
    
    #3、包A和包B下有同名模块也不会冲突,如A.a与B.a来自俩个命名空间

    包的文件里面需要使用的是from。。。。import ,如果是包套包的话,需要在里面使用前面这个格式。

    绝对导入和相对导入

    绝对导入是以glance作为起始的
    相对导入,用.或者..的方式最为起始(只能在一个包中使用,不能用于不同目录内)


    常用名模块
    time 模块
    通常来说时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。

    格式化的时间字符串

    结构化的时间,年月日这种的。

     print(time.time()) # 时间戳:1487130156.419527
     print(time.strftime("%Y-%m-%d %X")) #格式化的时间字符串:'2017-02-15 11:40:53'
     
     print(time.localtime()) #本地时区的struct_time
     print(time.gmtime())    #UTC时区的struct_time

    格式化的字符串
    # print(time.strftime('%Y-%m-%d %H:%M:%S %p'))
    # print(time.strftime('%Y-%m-%d %X %p'))

    # print(time.localtime()) # 上海:东八区
    # print(time.localtime().tm_year)
    # print(time.localtime().tm_mday)

    # print(time.gmtime()) # UTC时区


    datetime 模块
    print(datetime.datetime.now())
    print(datetime.datetime.now() + datetime.timedelta(days=3))
    print(datetime.datetime.now() + datetime.timedelta(days=-3))
    print(datetime.datetime.now() + datetime.timedelta(hours=3))
    print(datetime.datetime.now() + datetime.timedelta(seconds=111))
    current_time=datetime.datetime.now()
    print(current_time.replace(year=1977))

    占位符的使用
    第一个%是取消第二个%号的特殊意义

    random 模块

    import random

    print(random.random())#(0,1)----float 大于0且小于1之间的小数

    print(random.randint(1,3)) #[1,3] 大于等于1且小于等于3之间的整数

    print(random.randrange(1,3)) #[1,3) 大于等于1且小于3之间的整数

    print(random.choice([1,'23',[4,5]]))#1或者23或者[4,5]

    print(random.sample([1,'23',[4,5]],2))#列表元素任意2个组合

    print(random.uniform(1,3))#大于1小于3的小数,如1.927109612082716


    item=[1,3,5,7,9]
    random.shuffle(item) #打乱item的顺序,相当于"洗牌"
    print(item)
  • 相关阅读:
    idea设置docker远程插件
    Linux安装nfs共享文件
    类文件注释规约
    标准pcm数据(正弦波、方波、三角波)解读
    dB分贝计算
    Ion内存的带cahce与不带cache问题分享
    c++智能指针介绍_补充
    c++智能指针介绍
    wav封装格式
    开博啦。。。
  • 原文地址:https://www.cnblogs.com/seanliang/p/8745037.html
Copyright © 2011-2022 走看看