自定义模块,time,datetime以及random

1.自定义模块

  1. 自定义一个模块
  2. import #导入 (拿工具箱)
  3. 模块分类
  4. 1.内置模块(标准库) --python解释器自带的.py文件(模块)
  5. 2.第三方模块(大神写的) --需要额外下载的(www.pypi.org)
  6. 3.自定义模块(自己写的) --不需要额外下载
  7. 分模块的好处:
  8. 1.避免写重复代码
  9. 2.可以多次利用
  10. 3.拿来主义(拿来就用)
  11. 导入发生的事情:
  12. 1.在当前的名称空间开辟一个新的空间
  13. 2.将模块中所有的代码执行
  14. 3.通过模块名,进行查找函数(工具)
  15. 例:
  16. test.py:
  17. print("这是一个test")
  18. def func():
  19. print("is func")
  20. return "hello"
  21. def foo():
  22. print("is foo")
  23. name = "bye"
  24. 导入test.py
  25. import test
  26. print(test.name)
  27. print(test.func())
  28. import test as t #起别名
  29. print(t.name)
  30. 起别名:
  31. 1.可以将很长的模块名改成很短,方便使用
  32. 2.有利于代码的拓展和优化
  33. test.py meet.py
  34. def func(): def func():
  35. print("扳手") print("螺丝刀")
  36. msg= '''1.扳手 2.螺丝刀 >>>'''
  37. 提高兼容性:
  38. choose = input(msg)
  39. if choose == "1":
  40. import test as t:
  41. if choose == "2":
  42. import meet as t:
  43. t.func()
  44. from test import func
  45. func()
  46. import from...import的区别
  47. 1.import
  48. 缺点:占用内存较大
  49. 优点:不会和当前文件定义的变量或者函数发生冲突
  50. #import test
  51. name = "宝元"
  52. print(test.name)
  53. print(name)
  54. 2.from..import
  55. 缺点:会和当前文件定义的变量或者函数发生冲突
  56. name = "宝元"
  57. from test import name
  58. print(name) #会覆盖本文件中定义的变量
  59. 解决办法:
  60. name = "宝元"
  61. from test import name as n
  62. print(name)
  63. print(n)
  64. 优点:占用内存比较小
  65. from test import * #导入整个模块,会出现覆盖的现象,不能解决
  66. #飘红不一定是报错
  67. #可以在被导入的模块中顶部加入 __all__ = ["可以被导入的函数名和变量名"]
  68. 模块导入时的坑:被导入模块中导入模块,最后形成死环
  69. 模块的两种用法:
  70. 1.脚本(在cmd中执行 python test.py)
  71. 2.模块(不使用或者导入)
  72. from test import *
  73. if __name__ == '__main__': #测试接口
  74. func()
  75. 在当前模块中使用__name__就是'__main__',if下面的代码会执行
  76. 当模块被导入的时候__name__就是被导入的模块名,if下面的代码不会执行
  77. 导入路径:
  78. 1.使用相对路径:
  79. from day15.t1(文件路径名) import meet
  80. print(meet.name)
  81. 2.使用绝对路径:
  82. from sys import path
  83. path.insert(0,"D:\\")
  84. import meet
  85. print(meet.name)
  86. 导入路径优先级:自定义>内置>第三方

2.time

  1. time --时间模块
  2. 时间戳是计算机能够识别的时间;时间字符串是人能够看懂的时间;元组则是用来操作时间的
  3. 1.时间戳
  4. import time
  5. print(time.time()) #时间戳 浮点数
  6. print(time.time() + 500000) #时间戳加法 浮点数
  7. time.sleep(3) #睡眠 秒
  8. #时间戳表示的是格林尼治时间是从1970年1月1日00:00:00开始按秒计算的偏移量
  9. 2.格式化字符串时间
  10. import time
  11. print(time.strftime("%Y-%m-%d %H:%M:%S"))
  12. #2019-07-25 16:22:43
  13. 3.结构化时间
  14. 结构化时间:元组(struct_time) struct_time元组共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天等)
  15. import time
  16. print(time.gmtime()) / time.localtime()
  17. #time.struct_time(tm_year=2019, tm_mon=7, tm_mday=25, tm_hour=8, tm_min=25, tm_sec=5, tm_wday=3, tm_yday=206, tm_isdst=0)
  18. print(time.gmtime()[0]) #2019
  19. print(time.gmtime().tm_year) #2019
  20. 将时间戳转换成字符串时间
  21. print(time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime(1564043412.2928293)))
  22. #2019-07-25 08:30:12
  23. 将字符串串时间转换成时间戳
  24. print(time.mktime(time.strptime("2019-7-25 08:30:12","%Y-%m-%d %H:%M:%S")))
  25. #1564014612.0

3.datetime

  1. from datetime import datetime,timedelta
  2. datetime --类型:对象(<class 'datetime.datetime'>)
  3. #获取当前时间
  4. print(datetime.now())
  5. #2019-07-25 16:36:57.212376
  6. #时间相减
  7. print(datetime(2020,5,20,13,14,00) - datetime(2019,5,20,13,14,00))
  8. #366 days, 0:00:00
  9. #将当前时间转化成时间戳
  10. t = datetime.now()
  11. print(t.timestamp()) #1564044145.39519
  12. #将时间戳转化成当前时间
  13. import time
  14. print(datetime.fromtimestamp(1564044145.39519))
  15. #2019-07-25 16:42:25.395190
  16. #将字符串转成对象
  17. print(datetime.strptime("2019-07-25 16:42:25","%Y-%m-%d %H:%M:%S"))
  18. #2019-07-25 16:42:25
  19. #将对象转换成字符串
  20. 1.print(str(datetime.now()))
  21. #2019-07-25 16:47:01.294579
  22. 2.print(datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
  23. #2019-07-25 16:47:01
  24. #datetime加减
  25. print(datetime.now() + timedelta(hours = 30 * 24 * 12))
  26. #2020-07-19 16:49:06.174903
  27. print(datetime.now() - timedelta(hours = 30 * 24 * 12))
  28. #2018-07-30 16:49:33.403164
  29. print(datetime.now() + timedelta(days = 1))
  30. #2019-07-26 16:51:39.331657
  31. print(datetime.now() - timedelta(days = 1))
  32. #2019-07-24 16:52:26.509917

4.random

  1. import random
  2. 随机小数
  3. print(random.random()) #大于0且小于1的小数
  4. print(random.uniform(1,3)) #大于1且小于3的小数
  5. 随机整数
  6. print(random.randint(1,5)) #大于等于1且小于等于5之间的整数
  7. print(random.randrange(1,10,2)) # 大于等于1且小于10之间的奇数
  8. #randrange(起始,终止,步长)
  9. 随机选择一个返回
  10. print(random.choice([1,'23',[4,5]]))
  11. 随机选择多个返回,会有重复
  12. print(random.choices([1,2,3,4,5,],k=2))
  13. 随机选择多个返回,不会出现重复,除非元素重复
  14. print(random.sample([1,'23',[4,5]],k = 2))
  15. 打乱列表顺序
  16. lst = [1,2,3,4,5,6,7,8,9]
  17. random.shuffle(lst)
  18. print(lst)
  19. # [9, 8, 5, 3, 4, 1, 6, 7, 2]

5.其他

  1. python中时间日期格式化符号:
  2. %y 两位数的年份表示(00-99
  3. %Y 四位数的年份表示(000-9999
  4. %m 月份(01-12
  5. %d 月内中的一天(0-31
  6. %H 24小时制小时数(0-23
  7. %I 12小时制小时数(01-12
  8. %M 分钟数(00=59
  9. %S 秒(00-59
  10. %a 本地简化星期名称
  11. %A 本地完整星期名称
  12. %b 本地简化的月份名称
  13. %B 本地完整的月份名称
  14. %c 本地相应的日期表示和时间表示
  15. %j 年内的一天(001-366
  16. %p 本地A.M.或P.M.的等价符
  17. %U 一年中的星期数(00-53)星期天为星期的开始
  18. %w 星期(0-6),星期天为星期的开始
  19. %W 一年中的星期数(00-53)星期一为星期的开始
  20. %x 本地相应的日期表示
  21. %X 本地相应的时间表示
  22. %Z 当前时区的名称
  23. %% %号本身

自定义模块,time,datetime以及random的更多相关文章

  1. Python学习第二阶段Day2,模块time/datetime、random、os、sys、shutil

    1.Time.  Datetime(常用) UTC时间:为世界标准时间,时区为0的时间 北京时间,UTC+8东八区 import time print(time.time()) # timestamp ...

  2. python-Day5-深入正则表达式--冒泡排序-时间复杂度 --常用模块学习:自定义模块--random模块:随机验证码--time & datetime模块

    正则表达式   语法:             mport re #导入模块名 p = re.compile("^[0-9]") #生成要匹配的正则对象 , ^代表从开头匹配,[0 ...

  3. python27期day15:自定义模块、模块导入、模块的路径、模块的查找顺序、time、datetime、random、os、sys、作业题

    1.模块的介绍: py文件就是一个模块 2.模块的分类:内置模块:python标准库 200 第三方模块 自定义模块 3.为什么学习模块? 开发效率高,内置函数和模块 减少重复代码,分文件管理,有助于 ...

  4. day16——自定义模块、time、datetime、random

    day16 自定义模块 自定义一个模块 import :导入(拿工具箱) # import test # test.func() 导入发生的事情 在当前的名称空间中开辟一个新的空间 将模块中所有的代码 ...

  5. Python模块01/自定义模块/time模块/datetime模块/random模块

    Python模块01/自定义模块/time模块/datetime模块/random模块 内容大纲 1.自定义模块 2.time模块 3.datetime模块 4.random模块 1.自定义模块 1. ...

  6. Python 常用模块之time&datetime 和random

    本节大纲: 模块介绍 time &datetime模块 random 一.模块介绍: 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他 ...

  7. python time、datetime、random、os、sys模块

    一.模块1.定义模块:用来从逻辑上组织Python代码(变量,函数,类,逻辑:实现一个功能),本质就是.py结尾的python文件(文件名:test.py,对应的模块名:test)包:用来从逻辑上组织 ...

  8. 【python】-- 模块、os、sys、time/datetime、random、logging、re

    模块 模块,用一堆代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能需要多个 ...

  9. Python3基础(5)常用模块:time、datetime、random、os、sys、shutil、shelve、xml处理、ConfigParser、hashlib、re

    ---------------个人学习笔记--------------- ----------------本文作者吴疆-------------- ------点击此处链接至博客园原文------ 1 ...

随机推荐

  1. spring boot 集成RabbitMQ的异常

    com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method<channel.clos ...

  2. Java 面向对象(十三)

    异常 什么是异常 异常 :指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止. 在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象. ...

  3. Hibernate 基本使用

    Hibernate框架概述 一.什么是框架 软件的一个半成品,已经帮你完成了部分功能. 把一些不确定的东西,按照框架要求,达到相应的功能 Hibernate是JavaEE技术三层架构所用到的技术 二. ...

  4. ML_Review_SVM(Ch9)

    Note sth about SVM(Support Vector Machine) 支持向量机(SVM)从入门到放弃再到掌握这篇博客讲得挺仔细. 动机:   SVM的中文名字--支持向量机.本质是一 ...

  5. Cesium中常用的一些地理数据文件 以及数据相关的东西

    KML Cesium.KmlDataSource.load CZML Cesium.CzmlDataSource.load GeoJson Cesium.GeoJsonDataSource.load ...

  6. Linux中系统状态检测命令

    1.ifconfig用于获取网卡配置与网络状态等信息,格式为:ifconfig [网络设备] [参数] 2.uname命令用于查看系统内核版本等信息,格式为:uname [-a] 查看系统的内核名称. ...

  7. Random Projection

    Random Projection在k-means的应用   1. 随机投影 (Random Projection) 首先,这是一种降维方法.之前已经介绍过相对普遍的PCA的降维方法,这里介绍另一种降 ...

  8. OpenJudge计算概论-骑车与走路

    /*============================================================ 骑车与走路 总时间限制: 1000ms 内存限制: 65536kB 描述 ...

  9. Celery如何修复Python的GIL问题

    小结: 1. Celery如何修复Python的GIL问题https://python.freelycode.com/contribution/detail/346 最近,我重读了Glyph写的Uny ...

  10. win10系统安装踩坑之路

    1.一定要下载win10原版镜像.如果用迅雷下载一定要校验文件hash值的完整性,可以用fhash.exe校验,如果哈希值不一致,一定要重新下载镜像. 2.用软媒U盘启动制作启动U盘 3.重启后按F1 ...