2018-08-05

# ********************day21-time与random等常用模块与包 *******************

# 参考资料
# python模块(转自Yuan先生)
# https://www.cnblogs.com/wupeiqi/articles/4938499.html

# =====>>>>>>内容概览
# =====>>>>>>内容概览
# =====>>>>>>内容概览

# ------------------------------------------------------------
# # 1、import 模块文件
# # # 导入整个模块文件
# ------------------------------------------------------------

# ------------------------------------------------------------
# # 2、from 文件 import 函数名
# # # 导文模块文件中所需要用到的函数
# ------------------------------------------------------------

# ------------------------------------------------------------
# # 3、from 文件 import *
# # # 导文模块文件中 所有 的函数
# # # 这种方式是不退荐的,因为会把一个模块文件中的所有函数全部都导入进来,原因:
# # # 1、导入多
# # # 2、导入的函数名,可能与当前所用的文件中所定义的文件,出现名称重复,导致功能不正常
# ------------------------------------------------------------

# ------------------------------------------------------------
# # 4、sys.path
# # # 执行文件所在的路径
# # 模块 import:
# 1、执行 对应文件
# 2、引入变量名
# ------------------------------------------------------------

# ------------------------------------------------------------
# # 5、# from 子目录 import 文件
# # # from my_module import cal
# # # 从该运行文件中的子集目录中,引入文件
# # # 需要注意的是,引入的文件 没有包含其他的引入文件
# ------------------------------------------------------------

# ------------------------------------------------------------
# # 6、from 子目录 import 文件1
# # # from my_module import main
# # # 需要注意的是,引入的文件1中,包含其他的文件2,文件2与文件1 同目录
# # # ===>>以下的实例是会报错的!
# # # 出错的原因是找不到cal文件
# ------------------------------------------------------------

# ------------------------------------------------------------
# # 7、from 子目录 import 文件1
# # # from my_module import main
# # # 需要注意的是,引入的文件1中,包含其他的文件2,文件2与运行文件 同目录
# # # ===>>以下的实例是 不会 报错的!注意与上面区别
# ------------------------------------------------------------

# ------------------------------------------------------------
# # 8、包的概念
# # # 包的概念:包是用来组织模块的!在pycharm建立的python包中,下面会自动生成一个__init()__文件
# # # 调用包就是执行包下的__init__.py文件
# # # 引入了包以后,只要顶层的包名不与别人冲突,那所有模块都不会与别人冲突。现在,view.py模块的
# # # 名字就变成了hello_django.app01.views,类似的,manage.py的模块名则是hello_django.manage。
# ------------------------------------------------------------

# ------------------------------------------------------------
# # 9、from 包1.包2.包3.被调用文件 import 函数名
# # # from web.web1.web3.cal import add
# # # 从包中引入文件
# ------------------------------------------------------------

# ------------------------------------------------------------
# 10、from 包1.包2 import 包3
# # # from web.web1 import web3
# # # 不修改包3下的文件__init()__,从包中引入文件
# # # ===>>>注意:报错,原因是这种方式在不修改包3下的文件__init()__<<<===
# ------------------------------------------------------------

# ------------------------------------------------------------
# # 11、from 包1.包2 import 包3
# # # from web.web1 import web3
# # # ''修改''包3下的文件__init()__,从包中引入文件,添加内容如下:
# # # from . import cal
# ------------------------------------------------------------

# ------------------------------------------------------------
# # 12、总结,关于包下的内容调用
# # # 推荐使用方式一与方式二
# # # 方式三不推荐
# # # 方式一:from 包1.包2.包3 import 被调用文件
# # # from web.web1.web3 import cal
# # #
# # # 方式二:from 包1.包2.包3.被调用文件 import 函数名
# # # from web.web1.web3.cal import add
# # #
# # # 方式三:from 包1.包2 import 包3
# # # from web.web1 import web3
# # # ''修改''包3下的文件__init()__
# ------------------------------------------------------------

# ------------------------------------------------------------
# # 13、__name__
# # # 注意区别执行文件下的 __name__ 是 __main__,而被调用文件下的__name__是一个路径
# ------------------------------------------------------------

# ------------------------------------------------------------
# # 14、if __name__ == "__main__":
# # # 只是执行该文件下才会使用
# # # 功能一:如果我们是直接执行某个.py文件的时候,该文件中那么”__name__ == '__main__'“是True,
# # # 但是我们如果从另外一个.py文件通过import导入该文件的时候,这时__name__的值就是我们这个py文件的名字
# # # 而不是__main__。
# # #
# # # 功能二:调试代码的时候,在”if __name__ == '__main__'“中
# # # 加入一些我们的调试代码,我们可以让外部模块调用的时候不执行我们的调试代码,但是如果我们想排查问题
# # # 的时候,直接执行该模块文件,调试代码能够正常运行!
# ------------------------------------------------------------

# ------------------------------------------------------------
# # 15、sleep
# # # Python time sleep() 函数推迟调用线程的运行,可通过参数secs指秒数,表示进程挂起的时间。
# ------------------------------------------------------------

# ------------------------------------------------------------
# # 16、time.time()
# # # 时间戳(timestamp) :
# # # 打印的时间是从1970.1.1 00:00凌晨开始算,多少秒
# # # 时间戳(timestamp) : 通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。
# # # 我们运行“type(time.time())”,返回的是float类型。
# ------------------------------------------------------------

# ------------------------------------------------------------
# # 17、time.localtime()
# # # 当前的时间,是以我所在的时区进行计算的,其默认值为time.time()
# # # 元组(struct_time) : struct_time元组共有9个元素共九个元素:
# # # (年,月,日,时,分,秒,一年中第几周,一年中第几天,夏令时)
# # #
# # # int tm_sec; /* 秒 – 取值区间为[0,59] */
# # # int tm_min; /* 分 - 取值区间为[0,59] */
# # # int tm_hour; /* 时 - 取值区间为[0,23] */
# # # int tm_mday; /* 一个月中的日期 - 取值区间为[1,31] */
# # # int tm_mon; /* 月份(从一月开始,0代表一月) - 取值区间为[0,11] */
# # # int tm_year; /* 年份,其值等于实际年份减去1900 */
# # # int tm_wday; /* 星期 – 取值区间为[0,6],其中0代表星期天,1代表星期一,以此类推 */
# # # int tm_yday; /* 从每年的1月1日开始的天数 – 取值区间为[0,365],其中0代表1月1日,1代表1月2日,以此类推 */
# # # int tm_isdst; /* 夏令时标识符,实行夏令时的时候,tm_isdst为正。不实行夏令时的时候,tm_isdst为0;不了解情况时,tm_isdst()为负。
# ------------------------------------------------------------

# ------------------------------------------------------------
# # 18、time.gmtime()
# # # gmtime()方法是将一个时间戳转换为UTC时区。其默认值为time.time()
# # # 用法与localtime差不多,只是基准的时区不一样
# # # 元组(struct_time) : struct_time元组共有9个元素共九个元素:
# # # (年,月,日,时,分,秒,一年中第几周,一年中第几天,夏令时)
# ------------------------------------------------------------

# ------------------------------------------------------------
# # 19、time.mktime()
# # # 将一个struct_time转化为时间戳。
# ------------------------------------------------------------

# ------------------------------------------------------------
# # 20、time.strftime()
# # # 将一个struct_time转化为时间戳。
# # # 把一个代表时间的元组或者struct_time(如由time.localtime()和
# # # time.gmtime()返回)转化为格式化的时间字符串。如果t未指定,将传入time.localtime()。
# # # 如果元组中任何一个元素越界,ValueError的错误将会被抛出。
# ------------------------------------------------------------

# ------------------------------------------------------------
# # 21、time.strptime
# # # 把一个格式化时间字符串转化为struct_time。实际上它和strftime()是逆操作。
# ------------------------------------------------------------

# ------------------------------------------------------------
# # 22、time.asctime()
# # # asctime([t]) : 把一个表示时间的元组或者struct_time表示为这种形式:
# # # 'Sun Jun 20 23:21:05 1993'。
# # # 如果没有参数,将会将time.localtime()作为参数传入。
# ------------------------------------------------------------

# ------------------------------------------------------------
# # 23、time.asctime()
# # # 把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。如果参数未给或者为
# # # None的时候,将会默认time.time()为参数。它的作用相当于time.asctime(time.localtime(secs))。
# ------------------------------------------------------------

# ------------------------------------------------------------
# # 24 、datetime
# # # 获取当前的时间
# ------------------------------------------------------------

# ------------------------------------------------------------
# # 25、关于文件命名
# # # 自己定义的文件,不可与python自己已经自带的库重命,这个原则是与函数的命名是类似的
# # # 一旦自己的文件与python库中的重名,那么就会可能出现python库中的文件模块无法被调用
# ------------------------------------------------------------

# ------------------------------------------------------------
# # 26、random() 方法
# # # 返回随机生成的一个实数,它在[0,1)范围内。
# ------------------------------------------------------------

# ------------------------------------------------------------
# # 27、randint() 方法
# # # 语法为: random.randint(a,b)
# # # 函数返回数字 N ,N 为 a 到 b 之间的数字(a <= N <= b),包含 a 和 b。
# ------------------------------------------------------------

# ------------------------------------------------------------
# # 28、randrange() 方法
# # # 语法为: random.randrange ([start,] stop [,step])
# # # 参数
# # # start -- 指定范围内的开始值,包含在范围内。
# # # stop -- 指定范围内的结束值, 不包含 在范围内。
# # # step -- 指定递增基数。
# ------------------------------------------------------------

# ------------------------------------------------------------
# # 29、choice() 方法
# # # choice() 方法,对给定的括号内的内容进行选择,默认抽取一项,
# # # 返回一个列表,元组或字符串的随机项。
# ------------------------------------------------------------

# ------------------------------------------------------------
# # 30、sample() 方法
# # # sample() 方法,对给定的括号内的内容进行选择,根据给定决定抽取的不重复项数
# ------------------------------------------------------------

# ------------------------------------------------------------
# # 31、uniform() 方法
# # # uniform() 方法将随机生成下一个实数,它在 [x, y) 范围内。
# # # 注意:uniform()是不能直接访问的,需要导入 random 模块,然后通过 random 静态对象调用该方法。
# ------------------------------------------------------------

# ------------------------------------------------------------
# # 32、shuffle() 方法
# # # shuffle() 方法将序列的所有元素随机排序。
# # # 注意:uniform()是不能直接访问的,需要导入 random 模块,然后通过 random 静态对象调用该方法。
# ------------------------------------------------------------

# ------------------------------------------------------------
# # 33、实例应用:生成验证码
# ------------------------------------------------------------

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# ********************day21-time与random等常用模块与包 *******************
# ********************day21-time与random等常用模块与包 *******************
# ********************day21-time与random等常用模块与包 *******************
'''
# ------------------------------------------------------------
# # 1、import 模块文件
# # # 导入整个模块文件
# ------------------------------------------------------------
同目录下,文件cal.py,内容:
#!/usr/bin/env python
# -*- coding:utf-8 -*- print("ok1")
def add(x,y):
return x+y print("ok2") def sub(x,y):
return x-y print("ok3") ''' #
# import cal
# print("add: ",cal.add(3,4))
# print("sub: ",cal.sub(3,4))
#
# # D:\Anaconda3\python.exe D:/C_cache/py/day21_time_random_ChangYongMoKuaiYuBao/day21_lesson_package/test.py
# # ok1
# # ok2
# # ok3
# # add: 7
# # sub: -1
# #
# # Process finished with exit code 0 '''
# ------------------------------------------------------------
# # 2、from 文件 import 函数名
# # # 导文模块文件中所需要用到的函数
# ------------------------------------------------------------ 同目录下,文件cal.py,内容:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
print("ok----->>1")
def add(x,y):
return x+y
print("ok----->>2")
def sub(x,y):
return x-y
print("ok----->>3") '''
# from cal import add
# from cal import sub
#
# print("add: ",add(3,4))
# print("sub: ",sub(3,4))
#
# # D:\Anaconda3\python.exe D:/C_cache/py/day21_time_random_ChangYongMoKuaiYuBao/day21_lesson_package/test.py
# # ok----->>1
# # ok----->>2
# # ok----->>3
# # add: 7
# # sub: -1
# #
# # Process finished with exit code 0 ''' # ------------------------------------------------------------
# # 3、from 文件 import *
# # # 导文模块文件中 所有 的函数
# # # 这种方式是不退荐的,因为会把一个模块文件中的所有函数全部都导入进来,原因:
# # # 1、导入多
# # # 2、导入的函数名,可能与当前所用的文件中所定义的文件,出现名称重复,导致功能不正常
# ------------------------------------------------------------
#
# 同目录下,文件cal.py,内容:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
print("ok----->>1")
def add(x,y):
return x+y
print("ok----->>2")
def sub(x,y):
return x-y
print("ok----->>3") ''' # from cal import *
#
# '''
# # 打开这段函数后,将会出现cal中的add,被替代,结果会是17
# def add(x,y):
# return x+y+10
# '''
# print("add: ",add(3,4))
# print("sub: ",sub(3,4)) # # D:\Anaconda3\python.exe D:/C_cache/py/day21_time_random_ChangYongMoKuaiYuBao/day21_lesson_package/test.py
# # ok----->>1
# # ok----->>2
# # ok----->>3
# # add: 7
# # sub: -1
# #
# # Process finished with exit code 0 ''' # ------------------------------------------------------------
# # 4、sys.path
# # # 执行文件所在的路径
# # 模块 import:
# 1、执行 对应文件
# 2、引入变量名
# ------------------------------------------------------------
#
'''
#
# import sys
# print("sys.path:\n",sys.path)
#
# D:\Anaconda3\python.exe D:/C_cache/py/day21_time_random_ChangYongMoKuaiYuBao/day21_lesson_package/test.py
# sys.path:
# ['D:\\C_cache\\py\\day21_time_random_ChangYongMoKuaiYuBao\\day21_lesson_package',
# 'D:\\C_cache\\py\\day21_time_random_ChangYongMoKuaiYuBao',
# 'D:\\Anaconda3\\python36.zip',
# 'D:\\Anaconda3\\DLLs', 'D:\\Anaconda3\\lib',
# 'D:\\Anaconda3', 'D:\\Anaconda3\\lib\\site-packages',
# 'D:\\Anaconda3\\lib\\site-packages\\win32',
# 'D:\\Anaconda3\\lib\\site-packages\\win32\\lib',
# 'D:\\Anaconda3\\lib\\site-packages\\Pythonwin',
# 'D:\\Program Files (x86)\\PyCharm 2018.1.3\\helpers\\pycharm_matplotlib_backend']
#
# Process finished with exit code 0 ''' # ------------------------------------------------------------
# # 5、# from 子目录 import 文件
# # # from my_module import cal
# # # 从该运行文件中的子集目录中,引入文件
# # # 需要注意的是,引入的文件 没有包含其他的引入文件
# ------------------------------------------------------------ 文件目录结结
day21_lesson_package\test.py( 该运行文件 )
day21_lesson_package\my_module\cal.py ===》》main.py内容cal.py 内容
def add(x,y):
return x+y def sub(x,y):
return x-y
''' # from my_module import cal
#
# print("add: ",cal.add(3,4))
# print("sub: ",cal.sub(3,4))
#
# # D:\Anaconda3\python.exe D:/C_cache/py/day21_time_random_ChangYongMoKuaiYuBao/day21_lesson_package/test.py
# # add: 7
# # sub: -1
# #
# # Process finished with exit code 0 ''' # ------------------------------------------------------------
# # 6、from 子目录 import 文件1
# # # from my_module import main
# # # 需要注意的是,引入的文件1中,包含其他的文件2,文件2与文件1 同目录
# # # ===>>以下的实例是会报错的!
# # # 出错的原因是找不到cal文件
# ------------------------------------------------------------ 文件目录结结
day21_lesson_package\test.py( 该运行文件 )
day21_lesson_package\my_module\main.py
day21_lesson_package\my_module\cal.py ===>>>main.py内容
import cal
def run():
print("here is run function:\n",cal.add(3,5))
def only_main():
print("here is only_main function, not other directory\n") ===>>>cal.py 内容
def add(x,y):
return x+y
def sub(x,y):
return x-y ''' # from my_module import main
# main.only_main()
# main.run() # # D:\Anaconda3\python.exe D:/C_cache/py/day21_time_random_ChangYongMoKuaiYuBao/day21_lesson_package/test.py
# # Traceback (most recent call last):
# # File "D:/C_cache/py/day21_time_random_ChangYongMoKuaiYuBao/day21_lesson_package/test.py", line 206, in <module>
# # from my_module import main
# # File "D:\C_cache\py\day21_time_random_ChangYongMoKuaiYuBao\day21_lesson_package\my_module\main.py", line 3, in <module>
# # import cal
# # ModuleNotFoundError: No module named 'cal'
# #
# # Process finished with exit code 1 '''
# ------------------------------------------------------------
# # 7、from 子目录 import 文件1
# # # from my_module import main
# # # 需要注意的是,引入的文件1中,包含其他的文件2,文件2与运行文件 同目录
# # # ===>>以下的实例是 不会 报错的!注意与上面区别
# ------------------------------------------------------------
# # #
# 文件目录结结
day21_lesson_package\test.py( 该运行文件 )
day21_lesson_package\my_module\main.py
day21_lesson_package\cal.py ===>>>main.py内容
import cal
def run():
print("here is run function:\n",cal.add(3,5))
def only_main():
print("here is only_main function, not other directory\n") ===>>>cal.py 内容
def add(x,y):
return x+y
def sub(x,y):
return x-y '''
#
# from my_module import main
# main.only_main()
# main.run()
#
# # D:\Anaconda3\python.exe D:/C_cache/py/day21_time_random_ChangYongMoKuaiYuBao/day21_lesson_package/test.py
# # here is only_main function, not other directory
# #
# # here is run function:
# # 8
# #
# # Process finished with exit code 0 '''
# 06模块的执行以及__name__
# 06模块的执行以及__name__
# 06模块的执行以及__name__
# ------------------------------------------------------------
# # 8、包的概念
# # # 包的概念:包是用来组织模块的!在pycharm建立的python包中,下面会自动生成一个__init()__文件
# # # 调用包就是执行包下的__init__.py文件
# # # 引入了包以后,只要顶层的包名不与别人冲突,那所有模块都不会与别人冲突。现在,view.py模块的
# # # 名字就变成了hello_django.app01.views,类似的,manage.py的模块名则是hello_django.manage。
# ------------------------------------------------------------
''' '''
# ------------------------------------------------------------
# # 8.1、from 包1.包2.包3 import 被调用文件
# # # from web.web1.web3 import cal
# # # 从包中引入文件
# ------------------------------------------------------------
# #
# 目录结构:
当前目录/test.py(执行文件)
当前目录/web(包)/web1(包)/web3(包)/cal.py ===>>>cal.py内容
def add(x,y):
return x+y
def sub(x,y):
return x-y '''
# from web.web1.web3 import cal
# print(cal.add(2,3))
#
# #
# # D:\Anaconda3\python.exe D:/C_cache/py/day21_time_random_ChangYongMoKuaiYuBao/day21_lesson_package/test.py
# # 5
# #
# # Process finished with exit code 0 ''' # ------------------------------------------------------------
# # 9、from 包1.包2.包3.被调用文件 import 函数名
# # # from web.web1.web3.cal import add
# # # 从包中引入文件
# ------------------------------------------------------------
# #
# 目录结构:
当前目录/test.py(执行文件)
当前目录/web(包)/web1(包)/web3(包)/cal.py ===>>>cal.py内容
def add(x,y):
return x+y
def sub(x,y):
return x-y '''
# from web.web1.web3.cal import add
# print(add(2,3))
#
# #
# # D:\Anaconda3\python.exe D:/C_cache/py/day21_time_random_ChangYongMoKuaiYuBao/day21_lesson_package/test.py
# # 5
# #
# # Process finished with exit code 0 '''
# ------------------------------------------------------------
# # 10、from 包1.包2 import 包3
# # # from web.web1 import web3
# # # 不修改包3下的文件__init()__,从包中引入文件
# # # ===>>>注意:报错,原因是这种方式在不修改包3下的文件__init()__<<<===
# ------------------------------------------------------------
# #
# 目录结构:
当前目录/test.py(执行文件)
当前目录/web(包)/web1(包)/web3(包)/cal.py ===>>>cal.py内容
def add(x,y):
return x+y
def sub(x,y):
return x-y ''' # from web.web1 import web3
# print(web3.cal.add(2,3))
#
#
# # D:\Anaconda3\python.exe D:/C_cache/py/day21_time_random_ChangYongMoKuaiYuBao/day21_lesson_package/test.py
# # Traceback (most recent call last):
# # File "D:/C_cache/py/day21_time_random_ChangYongMoKuaiYuBao/day21_lesson_package/test.py", line 367, in <module>
# # print(web3.cal.add(2,3))
# # AttributeError: module 'web.web1.web3' has no attribute 'cal'
# #
# # Process finished with exit code 1 '''
# ------------------------------------------------------------
# # 11、from 包1.包2 import 包3
# # # from web.web1 import web3
# # # ''修改''包3下的文件__init()__,从包中引入文件,添加内容如下:
# # # from . import cal
# ------------------------------------------------------------
# #
# 目录结构:
当前目录/test.py(执行文件)
当前目录/web(包)/web1(包)/web3(包)/cal.py ===>>>cal.py内容
def add(x,y):
return x+y
def sub(x,y):
return x-y 当前目录/web(包)/web1(包)/web3(包)/__init()__.py
===》__init()__内容:
from . import cal '''
#
#
# from web.web1 import web3
# print(web3.cal.add(2,3))
#
# # D:\Anaconda3\python.exe D:/C_cache/py/day21_time_random_ChangYongMoKuaiYuBao/day21_lesson_package/test.py
# # 5
# #
# # Process finished with exit code 0 '''
# ------------------------------------------------------------
# # 12、总结,关于包下的内容调用
# # # 推荐使用方式一与方式二
# # # 方式三不推荐
# # # 方式一:from 包1.包2.包3 import 被调用文件
# # # from web.web1.web3 import cal
# # #
# # # 方式二:from 包1.包2.包3.被调用文件 import 函数名
# # # from web.web1.web3.cal import add
# # #
# # # 方式三:from 包1.包2 import 包3
# # # from web.web1 import web3
# # # ''修改''包3下的文件__init()__
# ------------------------------------------------------------
''' '''
# ------------------------------------------------------------
# # 13、__name__
# # # 注意区别执行文件下的 __name__ 是 __main__,而被调用文件下的__name__是一个路径
# ------------------------------------------------------------ 目录结构:
当前目录/test.py(执行文件)
当前目录/web(包)/web1(包)/web3(包)/cal.py ===>>>cal.py内容
print("这个是web3目录下的__name__: ",__name__) # 被调用时,打印是相对于执行文件下的路径
def add(x,y):
return x+y
def sub(x,y):
return x-y '''
# from web.web1.web3 import cal
# print('test运行函数下: ',__name__)
# print('web.web1.web3 下: ',cal.__name__)
# print('web.web1.web3 下add(3,4): ',cal.add(3,4))
#
# # D:\Anaconda3\python.exe D:/C_cache/py/day21_time_random_ChangYongMoKuaiYuBao/day21_lesson_package/test.py
# # 这个是web3目录下的__name__: web.web1.web3.cal
# # test运行函数下: __main__
# # web.web1.web3 下: web.web1.web3.cal
# # web.web1.web3 下add(3,4): 7
# #
# # Process finished with exit code 0 ''' # ------------------------------------------------------------
# # 14、if __name__ == "__main__":
# # # 只是执行该文件下才会使用
# # # 功能一:如果我们是直接执行某个.py文件的时候,该文件中那么”__name__ == '__main__'“是True,
# # # 但是我们如果从另外一个.py文件通过import导入该文件的时候,这时__name__的值就是我们这个py文件的名字
# # # 而不是__main__。
# # #
# # # 功能二:调试代码的时候,在”if __name__ == '__main__'“中
# # # 加入一些我们的调试代码,我们可以让外部模块调用的时候不执行我们的调试代码,但是如果我们想排查问题
# # # 的时候,直接执行该模块文件,调试代码能够正常运行!
# ------------------------------------------------------------ 目录结构:
当前目录/test.py(执行文件)
当前目录/web(包)/web1(包)/web3(包)/cal.py ===>>>cal.py内容
print("这个是web3目录下的__name__: ",__name__) # 被调用时,打印是相对于执行文件下的路径
def add(x,y):
return x+y
def sub(x,y):
return x-y
if __name__ == "__main__": # 此处该cal被调用,这里是False,不执行
print("这个是web3\\cal文件!")
print("sub(5,1): ",sub(5,1))
'''
# if __name__ == "__main__":
# from web.web1.web3 import cal
# print('web.web1.web3 下add(3,4): ',cal.add(3,4))
#
# # D:\Anaconda3\python.exe D:/C_cache/py/day21_time_random_ChangYongMoKuaiYuBao/day21_lesson_package/test.py
# # web.web1.web3 下add(3,4): 7
# #
# # Process finished with exit code 0 # 08 time时间模块
# 08 time时间模块
# 08 time时间模块
'''
# ------------------------------------------------------------
# # 15、sleep
# # # Python time sleep() 函数推迟调用线程的运行,可通过参数secs指秒数,表示进程挂起的时间。
# ------------------------------------------------------------ '''
#
# import time
# print("start:")
# time.sleep(3)
# print("end!")
#
# # D:\Anaconda3\python.exe D:/C_cache/py/day21_time_random_ChangYongMoKuaiYuBao/day21_lesson_package/test.py
# # start:
# # end:
# #
# # Process finished with exit code 0 '''
# ------------------------------------------------------------
# # 16、time.time()
# # # 时间戳(timestamp) :
# # # 打印的时间是从1970.1.1 00:00凌晨开始算,多少秒
# # # 时间戳(timestamp) : 通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。
# # # 我们运行“type(time.time())”,返回的是float类型。
# ------------------------------------------------------------
'''
#
# import time
# print("时间秒:",( (2018-1970)*365*24*60*60) )
# print(time.time() ) # 1533436467.959069秒
#
# # D:\Anaconda3\python.exe D:/C_cache/py/day21_time_random_ChangYongMoKuaiYuBao/day21_lesson_package/test.py
# # 时间秒: 1513728000
# # 1533436567.1447423
# #
# # Process finished with exit code 0 '''
# ------------------------------------------------------------
# # 17、time.localtime()
# # # 当前的时间,是以我所在的时区进行计算的,其默认值为time.time()
# # # 元组(struct_time) : struct_time元组共有9个元素共九个元素:
# # # (年,月,日,时,分,秒,一年中第几周,一年中第几天,夏令时)
# # #
# # # int tm_sec; /* 秒 – 取值区间为[0,59] */
# # # int tm_min; /* 分 - 取值区间为[0,59] */
# # # int tm_hour; /* 时 - 取值区间为[0,23] */
# # # int tm_mday; /* 一个月中的日期 - 取值区间为[1,31] */
# # # int tm_mon; /* 月份(从一月开始,0代表一月) - 取值区间为[0,11] */
# # # int tm_year; /* 年份,其值等于实际年份减去1900 */
# # # int tm_wday; /* 星期 – 取值区间为[0,6],其中0代表星期天,1代表星期一,以此类推 */
# # # int tm_yday; /* 从每年的1月1日开始的天数 – 取值区间为[0,365],其中0代表1月1日,1代表1月2日,以此类推 */
# # # int tm_isdst; /* 夏令时标识符,实行夏令时的时候,tm_isdst为正。不实行夏令时的时候,tm_isdst为0;不了解情况时,tm_isdst()为负。
# ------------------------------------------------------------
'''
#
# import time
# print(time.localtime())
# print(time.localtime(time.time()))
# t = time.localtime()
# print(t.tm_year,t.tm_mon,t.tm_mday)
#
# # D:\Anaconda3\python.exe D:/C_cache/py/day21_time_random_ChangYongMoKuaiYuBao/day21_lesson_package/test.py
# # time.struct_time(tm_year=2018, tm_mon=8, tm_mday=5, tm_hour=10, tm_min=53, tm_sec=19, tm_wday=6, tm_yday=217, tm_isdst=0)
# # time.struct_time(tm_year=2018, tm_mon=8, tm_mday=5, tm_hour=10, tm_min=53, tm_sec=19, tm_wday=6, tm_yday=217, tm_isdst=0)
# # 2018 8 5
# #
# # Process finished with exit code 0 ''' # ------------------------------------------------------------
# # 18、time.gmtime()
# # # gmtime()方法是将一个时间戳转换为UTC时区。其默认值为time.time()
# # # 用法与localtime差不多,只是基准的时区不一样
# # # 元组(struct_time) : struct_time元组共有9个元素共九个元素:
# # # (年,月,日,时,分,秒,一年中第几周,一年中第几天,夏令时)
# ------------------------------------------------------------
'''
#
# import time
# print("time.localtime():\n",time.localtime())
# print("time.gmtime():\n ",time.gmtime())
# print("time.gmtime(time.time()):\n ",time.gmtime(time.time()) )
#
# # D:\Anaconda3\python.exe D:/C_cache/py/day21_time_random_ChangYongMoKuaiYuBao/day21_lesson_package/test.py
# # time.localtime():
# # time.struct_time(tm_year=2018, tm_mon=8, tm_mday=5, tm_hour=10, tm_min=54, tm_sec=26, tm_wday=6, tm_yday=217, tm_isdst=0)
# # time.gmtime():
# # time.struct_time(tm_year=2018, tm_mon=8, tm_mday=5, tm_hour=2, tm_min=54, tm_sec=26, tm_wday=6, tm_yday=217, tm_isdst=0)
# # time.gmtime(time.time()):
# # time.struct_time(tm_year=2018, tm_mon=8, tm_mday=5, tm_hour=2, tm_min=54, tm_sec=26, tm_wday=6, tm_yday=217, tm_isdst=0)
# #
# # Process finished with exit code 0 '''
# ------------------------------------------------------------
# # 19、time.mktime()
# # # 将一个struct_time转化为时间戳。
# ------------------------------------------------------------
'''
#
# import time
# print("time.mktime(time.localtime()):\n",time.mktime(time.localtime()))
#
# # D:\Anaconda3\python.exe D:/C_cache/py/day21_time_random_ChangYongMoKuaiYuBao/day21_lesson_package/test.py
# # time.mktime(time.localtime()):
# # 1533437792.0
# #
# # Process finished with exit code 0 '''
# ------------------------------------------------------------
# # 20、time.strftime()
# # # 把一个代表时间的元组或者struct_time(如由time.localtime()和
# # # time.gmtime()返回)转化为格式化的时间字符串。如果t未指定,将传入time.localtime()。
# # # 如果元组中任何一个元素越界,ValueError的错误将会被抛出。
# ------------------------------------------------------------
'''
#
# import time
# print("%Y-%m-%d %X ",time.strftime("%Y-%m-%d %X",time.localtime()))
# print("%Y-%m-%d %X ",time.strftime("%Y-%m-%d %X"))
# print("%Y: %m: %d %X ",time.strftime("%Y: %m: %d %X",time.localtime()))
#
# # D:\Anaconda3\python.exe D:/C_cache/py/day21_time_random_ChangYongMoKuaiYuBao/day21_lesson_package/test.py
# # %Y-%m-%d %X 2018-08-05 11:04:25
# # %Y-%m-%d %X 2018-08-05 11:04:25
# # %Y: %m: %d %X 2018: 08: 05 11:04:25
# #
# # Process finished with exit code 0 '''
# ------------------------------------------------------------
# # 21、time.strptime
# # # 把一个格式化时间字符串转化为struct_time。实际上它和strftime()是逆操作。
# ------------------------------------------------------------ '''
#
# import time
# print( time.strptime("2018-08-05 11:04:25","%Y-%m-%d %X" ) )
# print( time.strptime("2018-08-05 11:04:25","%Y-%m-%d %X" ) )
# print( time.strptime("2018: 08: 05 11:04:25","%Y: %m: %d %X") )
#
# # D:\Anaconda3\python.exe D:/C_cache/py/day21_time_random_ChangYongMoKuaiYuBao/day21_lesson_package/test.py
# # time.struct_time(tm_year=2018, tm_mon=8, tm_mday=5, tm_hour=11, tm_min=4, tm_sec=25, tm_wday=6, tm_yday=217, tm_isdst=-1)
# # time.struct_time(tm_year=2018, tm_mon=8, tm_mday=5, tm_hour=11, tm_min=4, tm_sec=25, tm_wday=6, tm_yday=217, tm_isdst=-1)
# # time.struct_time(tm_year=2018, tm_mon=8, tm_mday=5, tm_hour=11, tm_min=4, tm_sec=25, tm_wday=6, tm_yday=217, tm_isdst=-1)
# #
# # Process finished with exit code 0
# # ''' # ------------------------------------------------------------
# # 22、time.asctime()
# # # asctime([t]) : 把一个表示时间的元组或者struct_time表示为这种形式:
# # # 'Sun Jun 20 23:21:05 1993'。
# # # 如果没有参数,将会将time.localtime()作为参数传入。
# ------------------------------------------------------------ '''
# import time
# print(time.asctime())
# print(time.asctime(time.localtime()))
#
# # D:\Anaconda3\python.exe D:/C_cache/py/day21_time_random_ChangYongMoKuaiYuBao/day21_lesson_package/test.py
# # Sun Aug 5 11:14:31 2018
# # Sun Aug 5 11:14:31 2018
# #
# # Process finished with exit code 0 '''
# ------------------------------------------------------------
# # 23、time.ctime()
# # # 把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。如果参数未给或者为
# # # None的时候,将会默认time.time()为参数。它的作用相当于time.asctime(time.localtime(secs))。
# ------------------------------------------------------------
'''
# import time
# print(time.ctime())
# print(time.ctime(time.time()))
#
# D:\Anaconda3\python.exe D:/C_cache/py/day21_time_random_ChangYongMoKuaiYuBao/day21_lesson_package/test.py
# Sun Aug 5 11:18:40 2018
# Sun Aug 5 11:18:40 2018
# Sun Aug 5 11:18:40 2018
#
# Process finished with exit code 0 '''
# ------------------------------------------------------------
# # 24 、datetime
# # # 获取当前的时间
# ------------------------------------------------------------
'''
# import datetime
# print(datetime.datetime.now()) # D:\Anaconda3\python.exe D:/C_cache/py/day21_time_random_ChangYongMoKuaiYuBao/day21_lesson_package/test.py
# 2018-08-05 11:21:08.873272
#
# Process finished with exit code 0 # 09 random模块
# 09 random模块
# 09 random模块
''' # ------------------------------------------------------------
# # 25、关于文件命名
# # # 自己定义的文件,不可与python自己已经自带的库重命,这个原则是与函数的命名是类似的
# # # 一旦自己的文件与python库中的重名,那么就会可能出现python库中的文件模块无法被调用
# ------------------------------------------------------------ ''' '''
# ------------------------------------------------------------
# # 26、random() 方法
# # # 返回随机生成的一个实数,它在[0,1)范围内。
# ------------------------------------------------------------
'''
#
#
# import random
# ret = random.random()
# print(ret)
#
# # D:\Anaconda3\python.exe D:/C_cache/py/day21_time_random_ChangYongMoKuaiYuBao/day21_lesson_package/test.py
# # 0.5055980648694552
# #
# # Process finished with exit code 0 '''
# ------------------------------------------------------------
# # 27、randint() 方法
# # # 语法为: random.randint(a,b)
# # # 函数返回数字 N ,N 为 a 到 b 之间的数字(a <= N <= b),包含 a 和 b。
# ------------------------------------------------------------
'''
# import random
# ret1 = random.randint(1,5)
# print(random.randint(1,5),random.randint(1,5),\
# random.randint(1,5),random.randint(1,5),
# random.randint(1,5),random.randint(1,5))
#
# # D:\Anaconda3\python.exe D:/C_cache/py/day21_time_random_ChangYongMoKuaiYuBao/day21_lesson_package/test.py
# # 2 1 3 3 5 1
# #
# # Process finished with exit code 0 '''
# ------------------------------------------------------------
# # 28、randrange() 方法
# # # 语法为: random.randrange ([start,] stop [,step])
# # # 参数
# # # start -- 指定范围内的开始值,包含在范围内。
# # # stop -- 指定范围内的结束值, 不包含 在范围内。
# # # step -- 指定递增基数。
# ------------------------------------------------------------ '''
# import random
# ret1 = random.randrange(1,5,)
# print(random.randrange(1,5),random.randrange(1,5),\
# random.randrange(1,5),random.randrange(1,5),
# random.randrange(1,5),random.randrange(1,5))
#
# # D:\Anaconda3\python.exe D:/C_cache/py/day21_time_random_ChangYongMoKuaiYuBao/day21_lesson_package/test.py
# # 3 4 4 1 4 2
# #
# # Process finished with exit code 0 ''' # ------------------------------------------------------------
# # 29、choice() 方法
# # # choice() 方法,对给定的括号内的内容进行选择,默认抽取一项,
# # # 返回一个列表,元组或字符串的随机项。
# # # random.choice(内容),内容可以是字符串,列表,但是不可以是集合、元组
# ------------------------------------------------------------ '''
# import random
# print(random.choice([1,'23',[4,5]]))#23
# print(random.choice([1,'23',[4,5]]))#23
# print( "choice('A String') : ", random.choice('A String') ) # D:\Anaconda3\python.exe D:/C_cache/py/day21_time_random_ChangYongMoKuaiYuBao/day21_lesson_package/test.py
#
#
# choice('A String') : A
#
# Process finished with exit code 0 '''
# ------------------------------------------------------------
# # 30、sample() 方法
# # # sample() 方法,对给定的括号内的内容进行选择,根据给定决定抽取的不重复项数
# ------------------------------------------------------------ ''' # import random
# print(random.sample([1,'23',[4,5]],2)) # 抽取2项
# print(random.sample([1,'23',[4,5]],1)) # 抽取1项
# print(random.sample([1,'23',[4,5]],3)) # 抽取3项
#
# D:\Anaconda3\python.exe D:/C_cache/py/day21_time_random_ChangYongMoKuaiYuBao/day21_lesson_package/test.py
# ['23', [4, 5]]
# [1]
# ['23', [4, 5], 1]
#
# Process finished with exit code 0 '''
# ------------------------------------------------------------
# # 31、uniform() 方法
# # # uniform() 方法将随机生成下一个实数,它在 [x, y) 范围内。
# # # 注意:uniform()是不能直接访问的,需要导入 random 模块,然后通过 random 静态对象调用该方法。
# ------------------------------------------------------------
'''
# import random
# print(random.uniform(1,3))
# print(random.uniform(1,3))
# print(random.uniform(1,3))
#
# # D:\Anaconda3\python.exe D:/C_cache/py/day21_time_random_ChangYongMoKuaiYuBao/day21_lesson_package/test.py
# # 2.883114382491064
# # 2.873907630119383
# # 2.136903515729406
# #
# # Process finished with exit code 0 '''
# ------------------------------------------------------------
# # 32、shuffle() 方法
# # # shuffle() 方法将序列的所有元素随机排序。
# # # 注意:uniform()是不能直接访问的,需要导入 random 模块,然后通过 random 静态对象调用该方法。
# ------------------------------------------------------------ '''
# import random
# item = [1,3,5,4,6,7,2]
# random.shuffle(item)
# print(item)
#
# random.shuffle(item)
# print(item)
#
# # D:\Anaconda3\python.exe D:/C_cache/py/day21_time_random_ChangYongMoKuaiYuBao/day21_lesson_package/test.py
# # [4, 3, 5, 2, 1, 7, 6]
# # [7, 3, 1, 2, 4, 6, 5]
# #
# # Process finished with exit code 0 ''' # ------------------------------------------------------------
# # 33、实例应用:生成验证码
# ------------------------------------------------------------ ''' #
# import random
# def identifying_code():
# code =''
# for i in range(1,5):
# num = random.randint(0,9)
# alf_small = chr( random.randint(65,90))
# alf_large = chr(random.randint(97, 122))
# s = str( random.choice( [num,alf_small,alf_large] ) )
# code += s
# return code
# print(identifying_code())

day21-time与random等常用模块与包的更多相关文章

  1. ansible笔记(9):常用模块之包管理模块

    ansible笔记():常用模块之包管理模块 yum_repository模块 yum_repository模块可以帮助我们管理远程主机上的yum仓库. 此处我们介绍一些yum_repository模 ...

  2. python常用模块:包的使用、init作用、相对导入绝对导入与内置函数

    今天主要讲的内容有: 一.包的详解二.相对导入和绝对导入三.内置模块补充 一.包的详解 1.包是什么 包其实也是一个模块,只不过是一个大的模块下包含一堆模块的载体 本质上也是一个文件夹,与普通文件的区 ...

  3. ansible笔记(7):常用模块之包管理模块

    1.yum_repository模块 用于远程管理远程主机上的yum仓库. 参数解析: name:必须参数,用于指定要操作的唯一的仓库ID,也就是.repo配置文件中每个仓库对应的“中括号”内的仓库I ...

  4. 常用模块(random,os,json,pickle,shelve)

    常用模块(random,os,json,pickle,shelve) random import random print(random.random()) # 0-1之间的小数 print(rand ...

  5. python常用模块(模块和包的解释,time模块,sys模块,random模块,os模块,json和pickle序列化模块)

    1.1模块 什么是模块: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文 ...

  6. Python 入门基础14 --time、os、random、json、pickle 常用模块1

    今日内容: 一.常用模块 2019.04.10 更新 1.time:时间 2.calendar:日历 3.datetime:可以运算的时间 4.sys:系统 5.os:操作系统 6.os.path:系 ...

  7. python 常用模块之random,os,sys 模块

    python 常用模块random,os,sys 模块 python全栈开发OS模块,Random模块,sys模块 OS模块 os模块是与操作系统交互的一个接口,常见的函数以及用法见一下代码: #OS ...

  8. 模块、包及常用模块(time/random/os/sys/shutil)

    一.模块 模块的本质就是一个.py 文件. 导入和调用模块: import module from module import xx from module.xx.xx import xx as re ...

  9. python 常用模块(一): random , time , sys , os模块部分知识.

    1.常用模块:(1)collectiaons模块 (2)与时间相关  time模块 (3)random模块 (4)os模块 (5)sys模块 (6) 序列化模块: json  ,   pickle 2 ...

随机推荐

  1. Spring Boot 2.X 实现文件上传(三)

    使用 SpringBoot 项目完成单个.多个文件的上传处理,并将上传的文件保存到指定目录下. 代码演示案例 所有的 HTML 页面文件 index.html <!DOCTYPE html> ...

  2. Batch - %~dp0 modifiers

    %~dp0 简易解释 The variable %0 in a batch script is set to the name of the executing batch file. The ~dp ...

  3. 记录一下webpack好用的node模块

    postcss-loader autoprefixer: 自动添加css前缀 css-loader: 能在js文件中导入css(配合React比较好,我猜) style-loader: 将所有的计算后 ...

  4. CRI 与 ShimV2:一种 Kubernetes 集成容器运行时的新思路

    摘要: 关于 Kubernetes 接口化设计.CRI.容器运行时.shimv2.RuntimeClass 等关键技术特性的设计与实现.     Kubernetes 项目目前的重点发展方向,是为开发 ...

  5. Android中onTouch方法的执行过程以及和onClick执行发生冲突的解决办法

    $*********************************************************************************************$ 博主推荐 ...

  6. bzoj1031题解

    [解题思路] 将原串复制一份拼接到原串后作为处理串,可以对处理串的前一半后缀排序,即可得出顺序.复杂度O(Llog2L). [参考代码] 也是naive的时候写的..后缀数组居然是用桶排求的.. #p ...

  7. detours编译与windows下makefile学习

    1.编译 windows环境命令行编译很少用,detours需要使用命令行编译,刚好试试,过程如下: 1.为了能够在所有目录中使用nmake命令,需要设置环境变量Path D:\Program Fil ...

  8. VS2010-MFC(Ribbon界面开发:使用更多控件并为控件添加消息处理函数)

    转自:http://www.jizhuomi.com/software/255.html 上一节讲了为Ribbon Bar添加控件的方法.本节教程将继续完善前面的实例,讲解一些稍复杂的控件的添加方法, ...

  9. Openstack组件实现原理 — OpenVswitch/Gre/vlan

    目录 目录 前文提要 Neutron 管理的网络相关实体 OpenVswitchOVS OVS 的架构 VLan GRE 隧道 Compute Node 中的 Instance 通过 GRE 访问 P ...

  10. k8s 存储 nfs服务

    1.所有节点安装nfs yum install nfs-utils -y 2.配置nfs服务端,在master节点上 vim exports /data 10.0.0.0/24(rw,async,no ...