廖雪峰Python学习笔记day10

此博客记录了Python学习笔记,包含day9和day11的内容,专注于Python学习过程中的知识总结。

学习笔记day9

# python study day10

# 正则表达式
# \d # 匹配一个数字
# \w # 匹配一个字母或数字
# . # 匹配任意字符
# * # 匹配0个或任意多个字符
# + # 匹配至少一个字符
# ? # 匹配0个或1个字符
# {n} # 匹配n个字符
# {n, m} # 匹配n-m个字符
# \s # 匹配一个空格(包括Tab空白符),\s+ 表示至少一个空格
# [] # 匹配范围,[0-9a-zA-Z\_] 可以匹配一个数字、字母或下划线
# A|B # 匹配A或B
# ^ # 匹配行开头,^\d 表示以数字开头
# $ # 匹配行结尾,\d$ 表示以数字结束
# 例匹配 '010-12345'对'-'是特殊字符,要用‘\’转义。\d{3}\-\d{3,8}
# 对表达式'abc\-001'因为python也用'\'转义,所以要写成'abc\\-001'
# 为避免麻烦,推荐使用'r'前缀代替转义,s = r'abc\-001'
# test = '输入的字符串'
# if re.match(r'正则表达式', test): # 成功返回match对象,失败返回None
#     print('ok')
# else:
#     print('failed')
# 用正则表达式切分字符串
# import re
# re.split(r'\s+', 'a b    c') # 可以识别连续空格 >>> ['a','b','c']
# re.split(r'[\s\,]+', 'a,b, c  d') #>>> ['a','b','c','d']
# re.split(r'[\s\,\;]+', 'a,b;; c  d') #>>> ['a','b','c','d']
# 用()表示要提取的分组
# import re
# m = re.match(r'^(\d{3})-(\d{3,8})$', '010-12345')
# m.group(0) # 获取原始字符串 >>> '010-12345'
# m.groups() # 获取分组集合 >>> ('010', '12345')
# m.group(1) #>>> '010'
# m.group(2) #>>> '12345'
# 正则默认匹配时贪婪匹配,尽可能多地匹配
# re.match(r'^(\d+)(0*)$', '102300').groups() #>>> ('102300', '')
# re.match(r'^(\d+?)(0*)$', '102300').groups() #添加?>>> ('1023', '00')
# 预编译,一次编译正则多次使用
# import re
# tel = re.compile(r'^(\d{3})-(\d{3,8})$')
# tel.match('010-12345').groups() #>>> ('010', '12345')
# import re
# def is_valid_email(addr):
#     email = r'(^\w+\.?\w+)@(\w+\.\w{3})'
#     return re.match(email, addr) != None
# print(is_valid_email('num.19th@gmail.com'))
# import re
# def name_of_email(addr):
#     email = r'\<*([\w\s]*)\>*\s*(\w*)@(\w+\.\w{3})'
#     m = re.match(email, addr)
#     if m:
#         return m.group(1)
# print(name_of_email('<Tom Paris> tom@voyager.org'))

# python常用内建模块
# 1、datetime 日期时间标准库
# from datetime import datetime, timedelta, timezone
# # datetime模块中引入datetime类,timedelta计算类,timezone时区类
# print(datetime.now()) # 当前时间 >>> 2020-12-02 11:49:12.195332
# print(datetime(2020, 12, 2, 11, 50)) # 指定时间 >>> 2020-12-02 11:50:00
# # timestamp = 0 = 1970-1-1 00:00:00 UTC+0:00(epoch time) # 北京时区 UTC+8:00
# print(datetime.now().timestamp()) # 转为timestamp >>> 1606881363.16063 单位秒
# t = 1606881300.0
# print(datetime.fromtimestamp(t)) # 转为datetime >>> 2020-12-02 11:55:00 本地时区
# print(datetime.utcfromtimestamp(t)) # 转标准时区 >>> 2020-12-02 03:55:00
# print(datetime.strptime('2020-12-1 12:03:00','%Y-%m-%d %H:%M:%S'))
# # str 转 dateime,没有时区信息 >>> 2020-12-01 12:03:00
# print(datetime.now().strftime('%a, %b %d %H:%M')) 
# # datetime 转 str >>> Wed, Dec 02 12:07
# print(datetime.now() - timedelta(days=1)) 
# # 当前时间减一天 >>> 2020-12-01 13:29:03.515232
# print(datetime.now() + timedelta(days=2, hours=12))
# # >>>2020-12-05 01:31:36.034688
# print(datetime.now().replace(tzinfo=timezone(timedelta(hours=8))))
# # 设置时区为UTC+8:00 >>> 2020-12-02 13:38:29.993544+08:00
# utc_dt = datetime.utcnow().replace(tzinfo=timezone.utc)
# bj_dt = utc_dt.astimezone(timezone(timedelta(hours=8)))
# # 转换时区为北京时间 >>> 2020-12-02 13:38:29.993544+08:00
# print(bj_dt.astimezone(timezone(timedelta(hours=9))))
# # 北京时区转东京时间 >>> 2020-12-02 14:46:37.090934+09:00
# from datetime import datetime,timezone,timedelta
# def to_timestamp(dt_str, tz_str):
#     dt = datetime.strptime(dt_str, '%Y-%m-%d %H:%M:%S')
#     tz = tz_str.replace('UTC','').split(':')
#     minutes = int(tz[0]) * 60 + int(tz[1])  - 8 * 60
#     if minutes > 0:
#         dt = dt + timedelta(minutes=minutes)
#     else:
#         dt = dt - timedelta(minutes=minutes)
#     print(dt.timestamp())
#     return dt.timestamp()
# t1 = to_timestamp('2015-6-1 08:10:30', 'UTC+7:00')
# assert t1 == 1433121030.0, t1
# def to_timestamp2(dt_str, tz_str):
#     dt = datetime.strptime(dt_str, '%Y-%m-%d %H:%M:%S')
#     zone = re.match(r'UTC([+|-]\d+):(\d{2})',tz_str)
#     tz_utc = timezone(timedelta(hours=int(zone.group(1)),minutes=int(zone.group(2))))
#     tz_dt = dt.replace(tzinfo=tz_utc)
#     return tz_dt.timestamp()
    

在这里插入图片描述
学习笔记day11

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值