一、调用datatime库
"""
日期格式化特殊字符:
%a: 星期几的缩写形式(例如:Mon、Tue、Wed等)
%A: 星期几
%w: 星期几的数字表示(0表示星期日,1表示星期一,以此类推)
%d: 日期(两位数,01表示1号)
%b: 月份的缩写形式(例如:Jan、Feb、Mar等)
%B: 月份的完整形式(例如:January、February、March等)
%m: 月份(两位数,01表示一月)
%y: 年份的后两位数表示(例如:23表示2023年)
%Y: 年份的四位数表示(例如:2023)
%H: 小时(24小时制,两位数,00~23)
%I: 小时(12小时制,两位数,01~12)
%p: AM或PM的表示形式
%M: 分钟(两位数,00~59)
%S: 秒(两位数,00~59)
%f: 微秒(六位数,000000~999999)
%z: 时区偏移(+HHMM或-HHMM)
%Z: 时区名称
%j: 年份中的第几天(三位数,001~366)
%U: 年份中的第几周(从周日开始,00~53)
%W: 年份中的第几周(从周一开始,00~53)
%c: 日期时间的完整表示形式(例如:Mon Jan 1 00:00:00 2023)
%x: 日期的完整表示形式(例如:01/01/23)
%X: 时间的完整表示形式(例如:00:00:00)
%%: 百分号本身
"""
#1.获取当前时间
#到秒
#方法1
from datetime import datetime
date_val = datetime.now()
print(f"{date_val:%Y年%m月%d日 %H时%M分%S秒}")
#方法2
import datetime
data_val=datetime.datetime.now()
print(f"{date_val:%Y年%m月%d日 %H时%M分%S秒}")
#到微秒
#方法1:
from datetime import datetime
date_n=datetime.now()
print(f'{date_n:%H:%M:%S.%f}')
#方法2:
from datetime import datetime
print(datetime.now().time())
#2.构造时间datetime(year,month,day[,hour,minute,second]:可省),可以进行时间的加减、计算时间差等。
#构造时间date(year,month,day)
#datetime()
from datetime import datetime,date
data_val=datetime(2024,12,31)
print(data_val) #输出"2024-12-31 00:00:00'
print(f"{data_val:%Y年%m月%d日 %H时%M分%S秒}") #输出:'2024年12月31日 00时00分00秒'
#date()
print(f'date构建时间:{date(2024,12,31)}') #输出:'date构建时间:2024-12-31'
print(f'date构建时间:{[date(2024,12,31)]}') #输出:'date构建时间:[datetime.date(2024, 12, 31)]'
#3.时间转秒,秒转时间
#时间转秒:timestamp,结果浮点数
from datetime import datetime
data_val=datetime(2015,1,1,12,8) #注意不可写成:(2015,01,01,12,08)
print(data_val.timestamp()) #输出:"1420085280.0"
#秒转时间:datetime.fromtimestamp(秒数)
t=1420085281.0
print(datetime.fromtimestamp(t)) #输出:"2015-01-01 12:08:01"
d=datetime.fromtimestamp(t)
print(d.year,d.month,d.day) #输出:'2015 1 1'
#4.字符串str进行时间格式化:datetime.strptime(str,tpl)
from datetime import datetime
tStr="2015-01-01 12:08:01"
t=datetime.strptime(tStr, '%Y-%m-%d %H:%M:%S')
print(t) #输出:"2015-01-01 12:08:01"
#用法和time库一样,time.strptime(str,tpl),结果不一样
import time
t=time.strptime(tStr,'%Y-%m-%d %H:%M:%S')
print(t) #输出:"time.struct_time(tm_year=2015, tm_mon=1, tm_mday=1, tm_hour=12, tm_min=8, tm_sec=1, tm_wday=3, tm_yday=1, tm_isdst=-1)"
#5.时间转字符串str:strftime
from datetime import datetime
t= datetime.now()
print(t.strftime('%a, %b %d %H:%M')) #输出:"Thu, Apr 11 18:19"
print(t.strftime('%Y{y}%m{m}%d{d}').format(y='年',m='月',d='日')) #输出:'2024年04月11日'
#6.判断星期几:d.weekday()和d.isoweekday()
#d.weekday(),星期一为0
d=datetime(2012,12,31)
print(d.weekday()) #输出:'0'
#d.isoweekday(),星期一为1
print(d.isoweekday()) #输出:'1'
#7.时间的加减:timedelta(["""days: 天数,可以是正数或负数。\
"""seconds: 秒数,可以是正数或负数。\
microseconds: 微秒数,可以是正数或负数。\
milliseconds: 毫秒数,可以是正数或负数。\
minutes: 分钟数,可以是正数或负数。\
hours: 小时数,可以是正数或负数。\
weeks: 周数,可以是正数或负数。]=int)"""
from datetime import date,timedelta,datetime
t=date(2024,4,1)
#日:days
print(t+timedelta(days=1)) #输出:"2024-04-02",注意这里是date时间格式
#8.datetime时间格式与date时间格式
d = datetime.strptime('2024-4-5','%Y-%m-%d') #datetime时间格式
t=[d,d.date()]
print(t) #输出:'[datetime.datetime(2024, 4, 5, 0, 0), datetime.date(2024, 4, 5)]'
二、初始迭代器
def diedai(lst): #生成器的名称:'diedai'
for item in lst:
yield item
#print(diedai([0,1,2,3])) #输出异常:'<generator object diedai at 0x000001390F58AB30>'
h=diedai([0,1,2,3])
for i in h:
print(i) #在生成器已经终止后不尝试使用它,否则出现异常
#创建生成器和迭代器对象
def abc(lst):
for item in lst:
yield item
#创建生成器对象
gen=abc(['h',2,3])
#使用iter函数创建迭代器对象
iterator=iter(gen)
#迭代并打印每个元素,在每次迭代时都检查生成器是否还有值:
while True:
try:
item = next(gen)
print(item)
except StopIteration:
break
如果你真的想当程序员那么就先写一万条代码。……《向上生长》
24号写下113条代码
目标:10,000条
剩余:9,189条
总结:
迭代器不是很明白