模块.py
"""
import 模块名称 as 别名#as 别名可有可无
from 模块名称 import 变量/函数/类/* as 别名 #*表通配符,导入模块中的所有,若导入模块中具有同名的变量和函数,后导入的会将之前导入的覆盖
包是模块的目录,避免模块名称相冲突的问题
import 包名.模块名 as 别名
from 包名 import 模块名 as 别名
from 包.模块名 import *
调用包,包自带的__init__会自动执行且只执行一次,往后调用不再执行
主程序运行 通过这种方式,可以在其他程序中重用模块,而不必担心代码会自动执行。
if __name__ == '__main__':
pass#if __name__ ='__main__':后的语句只会在该模块作为主程序运行时才会执行
常用内置模块
os 与操作系统和文件相关操作有关的模块
re 执行正则表达式的模块
random 产生随机数的模块
seed(x) 初始化给定的随机数种子,默认为当前系统时间
random() 产生一个[0.0,1.0]之间的随机小数
randint(a,b) 生成一个[a,b]之间的整数
randrange(m,n,k) 生成一个[m,n)之间步长为k的随机整数
uniform(a,b) 生成一个[a,b]之间的随机小数
choice(seq) 从序列seq中随机选择一个元素
shuffle(seq) 将序列seq中元素随机排列,返回打乱后的序列
json 用于对高维数据进行编码和解码的模块
time 与时间相关的模块
time() 获取当前时间戳
localtime(sec) 获取指定时间戳对应本地时间的struct_time对象
ctime() 获取当前时间戳对应的易读字符串
strftime() 格式化时间,结果为字符串
strptime() 提取字符串的时间,结果为struct_time对象
sleep(sec) 休眠sec秒
%Y 年份 0001~9999
%m 月份 01~12
%B 月名 January~December
%d 日期 01~30
%A 星期 Monday~Sunday
%H 小时(24h制) 00~23
%I 小时(12h制) 01~12
%M 分钟 00~59
%S 秒 00~59
datetime 与日期时间相关的模块,方便显示日期并对日期进行运算
datetime 表日期时间的类
timedelta 表时间间隔的类
date 表日期的类
time 表时间的类
tzinfo 时区相关的类
第三方模块
pip install 模块名 #安装
pip install 模块名 #国外源http://pypi.douban.com/simple--trusted-host pypi.douban.com
pip uninstall 模块名 #卸载
python -m pip install--upgrade pip #升级
"""
import 模块自定义_fbnq
list_fbnq=[]
for i in range(1,10):
list_fbnq.append(模块自定义_fbnq.fbnq(i))#模块名打点调用
print(list_fbnq)
import 模块自定义_fbnq as ribit
list_fbnq=[]
for i in range(1,10):
list_fbnq.append(ribit.fbnq(i))#别名打点调用
print(list_fbnq)
from 模块自定义_fbnq import fbnq#只调用模块中的fbnq
list_fbnq=[]
for i in range(1,10):
list_fbnq.append(fbnq(i))
print(list_fbnq)
import 包.fbnq
list_fbnq=[]
for i in range(1,10):
list_fbnq.append(包.fbnq.fbnq(i))
print(list_fbnq)
from 包 import fbnq
list_fbnq=[]
for i in range(1,10):
list_fbnq.append(fbnq.fbnq(i))
print(list_fbnq)
from 包.fbnq import *
print(way)
import 包.主程序运行
import random
print(random.random())#没有随机种子,每次输出结果都不同
print(random.randint(0,9))
for i in range(10):
print(random.randrange(0,10,2))
print(random.uniform(0,10))
print(random.choice(list_fbnq))
random.shuffle(list_fbnq)
print(list_fbnq)
random.seed(0)#参数可以任意设置,只要前后所用参数一样,就可以取到一样的随机数
print(random.random())#设置随机种子,每次输出结果都相同
random.seed(0)
print(random.random())
print(random.randint(0,9))
for i in range(10):
print(random.randrange(0,10,2))
print(random.uniform(0,10))
print(random.choice(list_fbnq))
random.shuffle(list_fbnq)
print(list_fbnq)
import time
print(time.time(),type(time.time()))
print(time.localtime())
print(time.localtime(1))#1秒 从1970年,一月一日,8时0分0秒开始计时
print(time.localtime(0).tm_year,time.localtime(0).tm_mon,time.localtime(0).tm_mday,time.localtime(0).tm_hour,time.localtime(0).tm_min,time.localtime(0).tm_sec,time.localtime(0).tm_wday,time.localtime(0).tm_yday,time.localtime(0).tm_isdst)
print(time.ctime())
now_time=time.strftime('%Y-%m-%d\t%H:%M:%S\t%B.%A',time.localtime())
print(now_time)
now_time=time.strftime('%Y-%m-%d\t%H:%M:%S\t%B.%A',time.localtime(time.time()))
print(now_time)
print(time.strptime(now_time,'%Y-%m-%d\t%H:%M:%S\t%B.%A'))
time.sleep(3)
print("have sleeped 3 secends")
import datetime
print(datetime.datetime.now(),type(datetime.datetime.now()))
now_list=time.strftime('%Y %m %d %H %M',time.localtime()).split(' ')#字符串转datetime类 法1
now_datetime0=datetime.datetime(int(now_list[0]), int(now_list[1]), int(now_list[2]), int(now_list[3]), int(now_list[4]))
print(now_datetime0, type(now_datetime0))
print(now_datetime0.year, now_datetime0.month, now_datetime0.day, now_datetime0.hour, now_datetime0.minute, now_datetime0.second)
localtime0_list=time.strftime('%Y %m %d %H %M',time.localtime(0)).split(' ')
localtime0_datetime=datetime.datetime(int(localtime0_list[0]), int(localtime0_list[1]), int(localtime0_list[2]), int(localtime0_list[3]), int(localtime0_list[4]))
now_string=now_datetime0.strftime('%Y-%m-%d\t%H:%M')#datetime对象转字符串
print(now_string,type(now_string))
now_datetime1=datetime.datetime.strptime(now_string, '%Y-%m-%d\t%H:%M')#字符串转datetime类 法2
print(now_datetime1, type(now_datetime1))
print(localtime0_datetime < now_datetime0)#datetime对象早晚比较
timedelta= now_datetime0 - localtime0_datetime#datetime对象的差 <class 'datetime.timedelta'>
print(timedelta, type(timedelta))
print(localtime0_datetime + timedelta)#datetime对象+<class 'datetime.timedelta'>
ten_day=datetime.timedelta(10,0,0,0,0,0,0)#创建10天的timedelta对象 天 秒 微秒 毫秒 分钟 小时 周
print(ten_day,type(ten_day))
ten_day_ten_secend=datetime.timedelta(10,10)#创建10天10秒的timedelta对象
print(ten_day_ten_secend)
模块自定义_fbnq.py
def fbnq(n):#斐波那契数列
if n==1 or n==2:
return 1
else:
return fbnq(n-1)+fbnq(n-2)
包
__init__.py
print("hello world")#调用包,自动调用__init__,有且只调用一次;__init__.py内代码可写可不写
fbnq.py
way='F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)'
def fbnq(n):#斐波那契数列
if n==1 or n==2:
return 1
else:
return fbnq(n-1)+fbnq(n-2)
主程序运行.py
print("主程序运行")
if __name__ == '__main__':
print("主程序运行")
注意python文件路径
运行结果
模块.py
模块自定义_fbnq.py
无打印输出
包
__init__.py
fbnq.py
无打印输出
主程序运行.py