11.1 数学计算模块_math
import math #导入模块
print(math.ceil(2.4))
print(math.floor(2.4))
print(math.ceil(-2.4))
print(math.floor(-2.4))
print(math.pow(5,3))
print(math.sqrt(3.6))
print(math.log(125,5))
print(math.degrees(0.5 * math.pi)) #将弧度转换为角度
print(math.radians(180 / math.pi)) #将角度转换为弧度
print(math.sin(0.3))
11.2.1 datetime类
import datetime
#datetime.datetime(year,month,day,hour = 0,minute = 0,microsecond = 0,tzinfo = None)
#d = datetime.datetime(2020,2,30) 指定的day参数超出范围,会发生ValueError异常
d = datetime.datetime(2020,1,29)
print(d)
#d = datetime.datetime(2020,1,29,23,60,59,10000) 指定的minute参数超过范围,会发生异常
d = datetime.datetime(2020,1,29,23,56,59,10000)
print(d)
print(datetime.datetime.today())
print(datetime.datetime.now())
print(datetime.datetime.fromtimestamp(999999999.99))
11.2.2 date类
import datetime
#datetime.date(year,month,day)
#d = datetime.date(2020,2,30) 指定的day参数超出范围,会发生ValueError异常
d = datetime.date(2020,2,29)
print(d)
d = datetime.date.today()
print(d)
d = datetime.date.fromtimestamp(999999999.999)
print(d)
11.2.3 time类
import datetime
#datetime.time(year = 0,minut = 0,second = 0,microsecond = 0,tzinfo = None)
#d = datetime.time(24,59,58,1999) 指定的hour参数超出范围
d = datetime.time(23,59,58,1999)
print(d)
11.2.4 timedelta类
import datetime
#datetime.timedelta(days = 0,seconds = 0,micseconds = 0,milliseconds = 0,minutes = 0,hours = 0,week = 0)
d = datetime.date.today() #获取当前的本地信息
print(d)
delta = datetime.timedelta(10) #创建10天后的timedelta对象
d += delta #当前日期+10天
print(d)
d = datetime.date(2020,1,1)
print(d)
delta = datetime.timedelta(weeks = 5) #创建5周后的timedelta对象
d -= delta
print(d) #2020年1月1日前5周的日期
11.2.5 将日期时间与字符串相互转换
import datetime
d = datetime.datetime.today()
#设置日期时间格式化,表示四位年、两位月、两位天、两位小时24小时制、两位分及两位秒
d.strftime("%Y-%m-%d %H:%M:%S") #日期时间字符串
print(d)
d.strftime("%Y-%m-%d") #日期字符串
print(d)
str_date = "2020-2-29 10:40:26"
date = datetime.datetime.strptime(str_date,"%Y-%m-%d %H:%M:%S")
#将一个字符串按照指定的格式解析为日期时间对象
print(date)
11.3.1 字符串匹配
import re #导入模块
p = r'\w+@zhijieketang\.com' #验证邮箱的正则表达式
email1 = 'tony_guan588@zhijieketang.com' #要验证的邮箱字符串
m = re.match(p,email1) #返回非空的对象,说明匹配成功
print(m) #输出Match对象,span指字符串跨度,(0,29)表示找到的字符串位置,0指开始位置索引,29指结束位置索引
print(type(m))
email2 = 'tony_guan588@163.com'
m = re.match(p,email2)
print(m) #输出None,表示匹配失败
print(type(m))
11.3.2 字符串查找
import re
p = r'\w+@zhijieketang\.com'
text = "Tony's email is tony_guan588@zhijieketang.com"
#text表示要查找的字符串
m = re.search(p,text)
print(m) #查找成功,返回Match对象
text = "Tony's email is tony_guan588@163.com"
m = re.search(p,text)
print(m) #查找不成功,返回None对象
p = r'Java|java|JAVA' #验证Java单词的正则表达式,正则表达式中的竖线(|)字符表示"或"关系
text = "I like Java and java and JAVA."
match_list = re.findall(p,text)
print(match_list) #返回匹配的字符串列表
11.3.3 字符串替换
import re
p = r'\d+' #匹配数字(出现一次或多次)正则表达式
text = 'AB12CD34EF'
repece_text = re.sub(p,' ',text)
#sub()函数省略参数count时,表示不限制替换数量,替换结果是AB CD EF
print(repece_text)
repece_text = re.sub(p,' ',text,count = 1)
#sub()函数指定count为1,替换结果是AB CD34EF
print(repece_text)
repece_text = re.sub(p,' ',text,count = 2)
#sub()函数指定为2,2是最大可能的替换次数
print(repece_text)
11.3.4 字符串分割
import re
p = r'\d+'
text = 'AB12CD34EF'
clist = re.split(p,text)
print(clist)
clist = re.split(p,text,maxsplit = 1)
print(clist)
clist = re.split(p,text,maxsplit = 2)
print(clist)