0
点赞
收藏
分享

微信扫一扫

看漫画学Python 第十一章代码

青乌 2022-03-20 阅读 60
python

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)
举报

相关推荐

0 条评论