笔记20210514包和模块

包和模块笔记

  1. 模块的使用

    1. 什么是模块

      python中一个py就是一个模块

    2. 怎么在一个模块中使用另一个模块的内容(包括:数据,函数,类等)

      1. 注意:

        1.要在一个模块中使用另外一个模块中的内容,被使用的模块的模块名必须是标识符,不能是关键字
        2.一个模块中的只有全局变量才能被其他模块使用(function也是全局变量)
        3.其他模块只有在被导入以后才能使用

    3. 怎么导入

      1. import 模块名——可以通过 ‘模块名.变量’ 的方式使用被导入的模块中的所有的全局变量
      2. from 模块名 import 变量1, 变量2, ,…——导入指定模块中指定变量,导入后直接使用
      3. from 模块名 import *——导入指定模块中所有全局变量(星号—表示通配符)
      4. 重命名
        1. import 模块名 as 新模块名——给模块重命名,重命名后用数字来代替原模块名来使用
        2. from 模块名 import 变量1 as 新变量名1, 变量2, 变量3, …
    4. 导入模块原理

      执行代码的时候,遇到import或者from-import导入模块的时候,系统会进入模块将代码全部执行一遍

    5. 重复导入

      1. python中import模块时会自动检测导入的模块是否已经到如果,如果重复导入就不需要重复导入(在任何位置需要任何模块的时候可以再次直接导入,不会有任何重复导入的负担)
    6. 阻止导入

      1. 通用语句格式

        if name == ‘main’:

        ​ 导入时不需要执行的代码

      2. 这个if语句中的代码在模块被直接运行的时候会运行,在被别的模块导入的时候不会执行

      3. 原理:每个模块中都有__main__这个属性,用来保存当前模块的模块名,name__的默认值是py文件文件名,当执行运行某个模块时,这个模块的__name__会自动变成__main,其他没有被执行的模块的__name__都是文件名

  2. 包的使用

    1. 什么是包

      1. 包就是包含__init__.py文件的文件夹。包是专门用来对模块进行封装的
    2. 包的使用(导入包中的模块,或者导入包中模块的内容)

      import.模块
      import.模块 as 新模块名
      fromimport 模块1, 模块2, ...
      from.模块 import 变量1, 变量2, ...
      
      1. 导入方式

        # 导入方式1
        import filemanager.excelFile
        filemanager.excelFile.read_file()
        
        # 导入方式2
        import filemanager.excelFile as excelfile
        excelfile.read_file()
        
        # 导入方式3
        from filemanager import excelFile, jsonFile
        excelFile.read_file()
        jsonFile.read_json_file()
        
        
        # 导入方式4
        from filemanager.textFile import read_file, open_file
        read_file()
        open_file()
        
    3. 导入包中的原理

      通过包导入模块或者模块内容的时候,系统会先执行包中__init__.py文件,然后再执行对应文件
      import filemanager
      filemanager.close_file()
      
      from filemanager import close_file
      close_file()
      
      from filemanager import *
      close_file()
      read_file()
      open_file()
      
      
  3. random(import random)

    1. 随机整数

      1. random.randint(m, n)——产生m到n的随机整数(m和n都可以取到)

      2. 随机浮点数

        # random.random()——产生0~1的随机小数:[0, 1)
        print(random.random())
        print(random.random()*100)
        print(random.random()*80+20)
        
      3. 随机打乱列表中元素的顺序

        # random.shuffle(列表)
        nums = [1, 2, 3, 4, 5, 6, 7, 8, 9]
        random.shuffle(nums)
        print(nums)
        
      4. 随机获取序列中元素

        # random.choice(序列)——随机获取序列中的一个元素
        # random.choices(序列, k=N)——随机获取序列中的N个元素
        print(random.choice(nums))
        print(random.choices(nums, k=5))
        
      5. 产生唯一文本信息

        import uuid
        print(uuid.uuid1())
        print(uuid.uuid4())
        
  4. 时间相关模块(import time、import datetime)

    1. 时间戳

      时间戳是通过保存某个时间点到1970年0时0分0秒(格林威治时间)的时间差来保存时间(单位是秒)
      保存时间戳比保存时间字符串更节约内存

      # time.time()——获取当前时间的时间戳
      t1 = time.time()
      print(t1)     #1620985858.5293105
      
    2. 当地当前时间

      # time.localtime()——返回当地当前时间,返回的是结构体时间
      # time.localtime(时间戳)——见时间转化成结构体时间
      
      t3 = time.localtime()
      print(t3, t3.tm_mon, t3.tm_year)`# time.struct_time(tm_year=2021, tm_mon=5, tm_mday=14, tm_hour=17, tm_min=50, tm_sec=58, tm_wday=4, tm_yday=134, tm_isdst=0) 5 2021
      
      t4 = time.localtime(0)
      print(t4)	# time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=8, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)
      
    3. 睡眠指定时长(单位是秒)

      time.sleep(N)——睡眠指定时长(单位是秒)
      print('=========')
      time.sleep(3)
      print('+++++++++')
      
      from datetime import datetime, date, time, timedelta
      # timedelta——进行时间加减操作
      # datetime——年月日时分秒格式
      # date——年月日
      # time——时分秒
      
    4. 获取当前日期和时间13550576202

      # date.today()——今天日期
      t2 = date.today()
      print(t2)
      print(t2.year, '年', t2.month, '月', t2.day, '日')
      # 2021 年 5 月 14 日
      
    5. 获取时间对应的时间戳

      # datetime对象.timestamp()——获取时间对象对应的时间戳
      t3 = t1.timestamp()
      print(t3)	# 1620988069.434767
      
    6. 将字符串时间转换为时间对象

      # datetime.strptime(时间字符串, 时间格式字符串)
      '''
      %Y——年
      %m——月
      %d——日
      %H——时(24小时制)
      %M——分
      %S——秒
      '''
      t_str = '2021-05-14 16:51:47'
      t4 = datetime.strptime(t_str, '%Y-%m-%d %H:%M:%S')
      print(t4)	# 2021-05-14 16:51:47
      print(t4.timestamp())	# 1620982307.0
      
      t_str = '2021/5/14'
      t5 = datetime.strptime(t_str, '%Y/%m/%d')
      print(t5) # 2021-05-14 00:00:00
      
    7. 日期加减操作

      # timedelta
      t_str = '2021-05-14 16:51:47'
      t6 = datetime.strptime(t_str, '%Y-%m-%d %H:%M:%S')
      print(t6+timedelta(seconds=1))              #2021-05-14 16:51:48
      print(t6+timedelta(days=1))                 #2021-05-15 16:51:47
      print(t6+timedelta(days=1, hours=1))        #2021-05-15 17:51:47
      print(t6-timedelta(weeks=1))                #2021-05-07 16:51:47
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值