先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Python全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Python知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024c (备注Python)
正文
Output:
2021-05-18
2021-05-17
2021-05-14
2021-05-13
2021-05-12
13从今天的日期和一个人的生日推算年龄
from datetime import date
def calculate_age(born):
today = date.today()
try:
birthday = born.replace(year=today.year)
except ValueError:
birthday = born.replace(year=today.year, month=born.month + 1, day=1)
if birthday > today:
return today.year - born.year - 1
else:
return today.year - born.year
print(calculate_age(date(2001, 3, 1)))
Output:
20
14获得本月的第一个星期二
import calendar
from datetime import datetime
c = calendar.Calendar(firstweekday=calendar.SUNDAY)
monthcal = c.monthdatescalendar(datetime.today().year, datetime.today().month)
try:
tues = [day for week in monthcal for day in week if
day.weekday() == calendar.TUESDAY and day.month == datetime.today().month][0]
print(tues)
except IndexError:
print(‘No date found’)
Output:
2021-05-04
15将整数转换为日期对象
from datetime import datetime
i = 1545730073
timestamp = datetime.fromtimestamp(i)
print(timestamp)
print(type(timestamp))
Output:
2018-12-25 14:57:53
16当前日期减去 N 天的天数
from datetime import datetime, timedelta
d = datetime.today() - timedelta(days=5)
print(d)
Output:
2021-05-10 12:59:14.867969
17比较两个日期
import datetime
a = datetime.datetime(2020, 12, 31, 23, 59, 59)
b = datetime.datetime(2020, 11, 30, 23, 59, 59)
print(a < b)
print(a > b)
Output:
False
True
18从 datetime 对象中提取年份
import datetime
year = datetime.date.today().year
print(year)
Output:
2021
19在 Python 中找到星期几
import pendulum
dt = pendulum.parse(‘2021-05-18’)
print(dt.day_of_week)
dt = pendulum.parse(‘2021-05-01’)
print(dt.day_of_week)
dt = pendulum.parse(‘2021-05-21’)
print(dt.day_of_week)
Output:
2
6
5
20从当前日期获取 7 天前的日期
from datetime import datetime, timedelta
now = datetime.now()
for x in range(7):
d = now - timedelta(days=x)
print(d.strftime(“%Y-%m-%d”))
Output:
2021-05-18
2021-05-17
2021-05-16
2021-05-15
2021-05-14
2021-05-13
2021-05-12
21将两个日期时间对象之间的差值转换为秒
import datetime
time1 = datetime.datetime.strptime(‘19 01 2021’, ‘%d %m %Y’)
time2 = datetime.datetime.strptime(‘25 01 2021’, ‘%d %m %Y’)
difference = time2 - time1
print(difference)
seconds = difference.total_seconds()
print(seconds)
Output:
6 days, 0:00:00
518400.0
22获得任何一个月的第三个星期五
import calendar
c = calendar.Calendar(firstweekday=calendar.SUNDAY)
year = 2021
month = 5
monthcal = c.monthdatescalendar(year, month)
try:
third_friday = [day for week in monthcal for day in week if
day.weekday() == calendar.FRIDAY and day.month == month][2]
print(third_friday)
except IndexError:
print(‘No date found’)
Output:
2021-05-21
23从 Python 中的周数获取日期
import datetime
from dateutil.relativedelta import relativedelta
week = 25
year = 2021
date = datetime.date(year, 1, 1) + relativedelta(weeks=+week)
print(date)
Output:
2021-06-25
24获取特定日期的工作日
import datetime
print(datetime.date(2020, 5, 15).isocalendar()[2])
Output:
5
25创建一个 15 分钟前的 DateTime
import datetime
dt = datetime.datetime.now() - datetime.timedelta(minutes=15)
print(dt)
Output:
2021-05-15 22:25:55.897365
26从特定日期获取周的开始和结束日期
import pendulum
dt = pendulum.datetime(2012, 9, 5)
start = dt.start_of(‘week’)
print(start.to_datetime_string())
end = dt.end_of(‘week’)
print(end.to_datetime_string())
Output:
2012-09-03 00:00:00
2012-09-09 23:59:59
27两个日期之间的差异(以秒为单位)
from datetime import datetime
fmt = ‘%Y-%m-%d %H:%M:%S’
d1 = datetime.strptime(‘2020-01-01 17:31:22’, fmt)
d2 = datetime.strptime(‘2020-01-03 17:31:22’, fmt)
days_diff = d2 - d1
print(days_diff.days * 24 * 60 * 60)
Output:
172800
28以这种格式获取昨天的日期MMDDYY
from datetime import date, timedelta
yesterday = date.today() - timedelta(days=1)
print(yesterday.strftime(‘%m%d%y’))
Output:
051421
29从今天的日期获取上周三
from datetime import date
from datetime import timedelta
today = date.today()
offset = (today.weekday() - 2) % 7
wednesday = today - timedelta(days=offset)
print(wednesday)
Output:
2021-05-12
30所有可用时区的列表打印
import pytz
for i in pytz.all_timezones:
print(i)
Output:
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara
Africa/Asmera
Africa/Bamako
Africa/Bangui
Africa/Banjul
Africa/Bissau
…
US/Mountain
US/Pacific
US/Samoa
UTC
Universal
W-SU
WET
Zulu
31获取指定开始日期和结束日期之间的日期范围
import datetime
start = datetime.datetime.strptime(“21-06-2020”, “%d-%m-%Y”)
end = datetime.datetime.strptime(“05-07-2020”, “%d-%m-%Y”)
date_generated = [start + datetime.timedelta(days=x) for x in range(0, (end - start).days)]
for date in date_generated:
print(date.strftime(“%d-%m-%Y”))
Output:
21-06-2020
22-06-2020
23-06-2020
24-06-2020
25-06-2020
26-06-2020
27-06-2020
28-06-2020
29-06-2020
30-06-2020
01-07-2020
02-07-2020
03-07-2020
04-07-2020
32毫秒转换为数据
import datetime
time_in_millis = 1596542285000
dt = datetime.datetime.fromtimestamp(time_in_millis / 1000.0, tz=datetime.timezone.utc)
print(dt)
Output:
2020-08-04 11:58:05+00:00
33查找给定日期之后的第一个星期日的日期
import datetime
def next_weekday(d, weekday):
days_ahead = weekday - d.weekday()
if days_ahead <= 0:
days_ahead += 7
return d + datetime.timedelta(days_ahead)
d = datetime.date(2021, 5, 16)
next_sunday = next_weekday(d, 6)
print(next_sunday)
Output:
2021-05-23
34将(Unix)时间戳秒转换为日期和时间字符串
from datetime import datetime
dateStr = datetime.fromtimestamp(1415419007).strftime(“%A, %B %d, %Y %I:%M:%S”)
print(type(dateStr))
print(dateStr)
Output:
Saturday, November 08, 2014 09:26:47
35以月为单位的两个日期之间的差异
from datetime import datetime
from dateutil import relativedelta
date1 = datetime.strptime(‘2014-01-12 12:00:00’, ‘%Y-%m-%d %H:%M:%S’)
date2 = datetime.strptime(‘2021-07-15 12:00:00’, ‘%Y-%m-%d %H:%M:%S’)
r = relativedelta.relativedelta(date2, date1)
print(r.months + (12 * r.years))
Output:
90
36将本地时间字符串转换为 UTC
from datetime import *
from dateutil import *
from dateutil.tz import *
utc_zone = tz.gettz(‘UTC’)
local_zone = tz.gettz(‘America/Chicago’)
utc_zone = tz.tzutc()
local_zone = tz.tzlocal()
local_time = datetime.strptime(“2020-10-25 15:12:00”, ‘%Y-%m-%d %H:%M:%S’)
print(local_time)
local_time = local_time.replace(tzinfo=local_zone)
print(local_time)
utc_time = local_time.astimezone(utc_zone)
print(utc_time)
utc_string = utc_time.strftime(‘%Y-%m-%d %H:%M:%S’)
print(utc_string)
Output:
2020-10-25 15:12:00
2020-10-25 15:12:00+05:30
2020-10-25 09:42:00+00:00
2020-10-25 09:42:00
37获取当月的最后一个星期四
import calendar
from datetime import datetime
month = calendar.monthcalendar(datetime.today().year, datetime.today().month)
thrusday = max(month[-1][calendar.THURSDAY], month[-2][calendar.THURSDAY])
print(thrusday)
Output:
27
38从特定日期查找一年中的第几周
import pendulum
dt = pendulum.parse(‘2015-05-18’)
print(dt.week_of_year)
dt = pendulum.parse(‘2019-12-01’)
print(dt.week_of_year)
dt = pendulum.parse(‘2018-01-21’)
print(dt.week_of_year)
Output:
21
48
3
39从给定日期获取星期几
import datetime
import calendar
dt = datetime.datetime(2021, 4, 25, 23, 24, 55, 173504)
print(calendar.day_name[dt.weekday()])
Output:
Sunday
40用 AM PM 打印当前时间
from datetime import datetime
print(datetime.today().strftime(“%I:%M %p”))
Output:
10:11 PM
41获得一个月的最后一天
import calendar
print(calendar.monthrange(2002, 1)[1])
print(calendar.monthrange(2008, 6)[1])
print(calendar.monthrange(2012, 2)[1])
print(calendar.monthrange(2015, 2)[1])
Output:
31
30
29
28
42从工作日值中获取工作日名称
import calendar
print(calendar.day_name[0])
print(calendar.day_name[1])
print(calendar.day_name[2])
print(calendar.day_name[3])
print(calendar.day_name[4])
print(calendar.day_name[5])
print(calendar.day_name[6])
Output:
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
43将 N 小时数添加到当前日期时间
from datetime import datetime, timedelta
d = datetime.today() + timedelta(hours=18)
print(d)
Output:
2021-05-16 07:36:08.189948
44从当前日期获取年、月、日、小时、分钟
import datetime
now = datetime.datetime.now()
print(now.year, now.month, now.day, now.hour, now.minute, now.second)
Output:
2021 5 15 14 27 33
45获取特定月份和年份的最后一个星期日
import calendar
month = calendar.monthcalendar(2021, 2)
last_sunday = max(month[-1][calendar.SUNDAY], month[-2][calendar.SUNDAY])
print(last_sunday)
Output:
28
46查找特定日期的年份中的哪一天
import pendulum
dt = pendulum.parse(‘2015-05-18’)
print(dt.day_of_year)
dt = pendulum.parse(‘2019-12-01’)
print(dt.day_of_year)
dt = pendulum.parse(‘2018-01-21’)
print(dt.day_of_year)
Output:
138
335
21
47查找当前日期是工作日还是周末
import datetime
weekno = datetime.datetime.today().weekday()
if weekno < 5:
print(“Weekday”)
else: # 5 Sat, 6 Sun
print(“Weekend”)
Output:
Weekday
48组合 datetime.date 和 datetime.time 对象
import datetime
d = datetime.datetime.combine(datetime.date(2020, 11, 14),
datetime.time(10, 23, 15))
print(d)
Output:
2020-11-14 10:23:15
49获得每月的第 5 个星期一
import calendar
c = calendar.Calendar(firstweekday=calendar.SUNDAY)
year = 2016
month = 2
monthcal = c.monthdatescalendar(year, month)
try:
fifth_monday = [day for week in monthcal for day in week if
day.weekday() == calendar.MONDAY and day.month == month][4]
print(fifth_monday)
except IndexError:
print(‘No date found’)
Output:
2016-02-29
50将日期时间对象转换为日期对象
from datetime import datetime
datetime_obj = datetime(2020, 12, 15, 10, 15, 45, 321474)
print(datetime_obj)
date_obj = datetime_obj.date()
print(date_obj)
Output:
2020-12-15 10:15:45.321474
2020-12-15
51获取没有微秒的当前日期时间
from datetime import datetime
print(datetime.now().isoformat(’ ', ‘seconds’))
Output:
2021-05-15 12:55:45
52将 N 秒数添加到特定日期时间
import datetime
a = datetime.datetime(2020, 12, 31, 23, 59, 45)
b = a + datetime.timedelta(seconds=30)
print(a)
print(b)
Output:
2020-12-31 23:59:45
2021-01-01 00:00:15
53从当前日期获取两位数的月份和日期
import datetime
dt = datetime.datetime.now()
print(dt.strftime(‘%m’))
print(‘{:02d}’.format(dt.month))
print(f’{dt.month:02d}')
print(‘%02d’ % dt.month)
print(dt.strftime(‘%d’))
print(‘{:02d}’.format(dt.day))
print(f’{dt.day:02d}')
print(‘%02d’ % dt.day)
Output:
05
05
05
05
15
15
15
15
54从特定日期获取月份数据的开始和结束日期
import pendulum
dt = pendulum.datetime(2012, 9, 5)
start = dt.start_of(‘month’)
print(start.to_datetime_string())
end = dt.end_of(‘month’)
print(end.to_datetime_string())
Output:
2012-09-01 00:00:00
2012-09-30 23:59:59
55以周为单位的两个日期之间的差异
from datetime import date
date1 = date(2020, 12, 23)
date2 = date(2021, 5, 11)
days = abs(date1 - date2).days
print(days // 7)
Output:
19
56将字符串格式的日期转换为 Unix 时间戳
import datetime
stime = ‘15/05/2021’
print(datetime.datetime.strptime(stime, “%d/%m/%Y”).timestamp())
Output:
1621017000.0
57获取最后一个周日和周六的日期
from datetime import datetime, timedelta
def prior_week_end():
return datetime.now() - timedelta(days=((datetime.now().isoweekday() + 1) % 7))
def prior_week_start():
return prior_week_end() - timedelta(days=6)
print(‘Sunday’, format(prior_week_start()))
print(‘Saturday’, format(prior_week_end()))
Output:
Sunday 2021-05-09 13:13:30.057765
Saturday 2021-05-15 13:13:30.058912
58检查对象是否属于 datetime.date 类型
import datetime
x = ‘2012-9-1’
y = datetime.date(2012, 9, 1)
print(isinstance(x, datetime.date))
print(isinstance(y, datetime.date))
Output:
False
True
59获取特定日期的周数
import datetime
print(datetime.date(2020, 5, 15).isocalendar()[1])
Output:
20
60获取 UTC 时间
from datetime import datetime
dt = datetime.utcnow()
print(dt)
Output:
2021-05-15 17:01:31.008808
61获取本周的开始和结束日期
import pendulum
today = pendulum.now()
start = today.start_of(‘week’)
print(start.to_datetime_string())
end = today.end_of(‘week’)
print(end.to_datetime_string())
Output:
2021-05-10 00:00:00
2021-05-16 23:59:59
62两个日期之间的差异(以分钟为单位)
from datetime import datetime
fmt = ‘%Y-%m-%d %H:%M:%S’
d1 = datetime.strptime(‘2010-01-01 17:31:22’, fmt)
d2 = datetime.strptime(‘2010-01-03 17:31:22’, fmt)
days_diff = d2 - d1
print(days_diff.days * 24 * 60)
Output:
2880
63将日期时间对象转换为日期字符串
import datetime
t = datetime.datetime(2020, 12, 23)
x = t.strftime(‘%m/%d/%Y’)
print(x)
Output:
12/23/2020
64获得上周五
from datetime import date
from datetime import timedelta
today = date.today()
offset = (today.weekday() - 4) % 7
friday = today - timedelta(days=offset)
print(friday)
Output:
2021-05-14
65将 3 周添加到任何特定日期
import pendulum
dt = pendulum.datetime(2012, 2, 15)
dt = dt.add(weeks=3)
print(dt.to_date_string())
Output:
2012-03-07
66在其他两个日期之间生成一个随机日期
import random
import time
def str_time_prop(start, end, time_format, prop):
stime = time.mktime(time.strptime(start, time_format))
etime = time.mktime(time.strptime(end, time_format))
ptime = stime + prop * (etime - stime)
return time.strftime(time_format, time.localtime(ptime))
def random_date(start, end, prop):
return str_time_prop(start, end, ‘%m/%d/%Y %I:%M %p’, prop)
print(random_date(“1/1/2020 1:10 PM”, “1/1/2021 1:10 AM”, random.random()))
Output:
02/25/2020 08:26 AM
67查找从今天开始的第一个星期一的日期
from dateutil.rrule import rrule, WEEKLY, MO
from datetime import date
next_monday = rrule(freq=WEEKLY, dtstart=date.today(), byweekday=MO, count=1)[0]
print(next_monday)
Output:
2021-05-17 00:00:00
68两个日期之间的差异(以天为单位)
from datetime import date
d1 = date(2019, 8, 18)
d2 = date(2021, 12, 10)
days_diff = d2 - d1
print(days_diff.days)
Output:
845
69向当前日期添加六个月
from datetime import datetime
from dateutil.relativedelta import *
date = datetime.now()
print(date)
date = date + relativedelta(months=+6)
print(date)
Output:
2021-05-15 13:48:52.135612
2021-11-15 13:48:52.135612
70将数据时间对象转换为 Unix(时间戳)
import datetime
import time
# Saturday, October 10, 2015 10:10:00 AM
date_obj = datetime.datetime(2015, 10, 10, 10, 10)
print("Unix Timestamp: ", (time.mktime(date_obj.timetuple())))
Output:
Unix Timestamp: 1444452000.0
最后
不知道你们用的什么环境,我一般都是用的Python3.6环境和pycharm解释器,没有软件,或者没有资料,没人解答问题,都可以免费领取(包括今天的代码),过几天我还会做个视频教程出来,有需要也可以领取~
给大家准备的学习资料包括但不限于:
Python 环境、pycharm编辑器/永久激活/翻译插件
python 零基础视频教程
Python 界面开发实战教程
Python 爬虫实战教程
Python 数据分析实战教程
python 游戏开发实战教程
Python 电子书100本
Python 学习路线规划
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注python)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
def str_time_prop(start, end, time_format, prop):
stime = time.mktime(time.strptime(start, time_format))
etime = time.mktime(time.strptime(end, time_format))
ptime = stime + prop * (etime - stime)
return time.strftime(time_format, time.localtime(ptime))
def random_date(start, end, prop):
return str_time_prop(start, end, ‘%m/%d/%Y %I:%M %p’, prop)
print(random_date(“1/1/2020 1:10 PM”, “1/1/2021 1:10 AM”, random.random()))
Output:
02/25/2020 08:26 AM
67查找从今天开始的第一个星期一的日期
from dateutil.rrule import rrule, WEEKLY, MO
from datetime import date
next_monday = rrule(freq=WEEKLY, dtstart=date.today(), byweekday=MO, count=1)[0]
print(next_monday)
Output:
2021-05-17 00:00:00
68两个日期之间的差异(以天为单位)
from datetime import date
d1 = date(2019, 8, 18)
d2 = date(2021, 12, 10)
days_diff = d2 - d1
print(days_diff.days)
Output:
845
69向当前日期添加六个月
from datetime import datetime
from dateutil.relativedelta import *
date = datetime.now()
print(date)
date = date + relativedelta(months=+6)
print(date)
Output:
2021-05-15 13:48:52.135612
2021-11-15 13:48:52.135612
70将数据时间对象转换为 Unix(时间戳)
import datetime
import time
# Saturday, October 10, 2015 10:10:00 AM
date_obj = datetime.datetime(2015, 10, 10, 10, 10)
print("Unix Timestamp: ", (time.mktime(date_obj.timetuple())))
Output:
Unix Timestamp: 1444452000.0
最后
不知道你们用的什么环境,我一般都是用的Python3.6环境和pycharm解释器,没有软件,或者没有资料,没人解答问题,都可以免费领取(包括今天的代码),过几天我还会做个视频教程出来,有需要也可以领取~
给大家准备的学习资料包括但不限于:
Python 环境、pycharm编辑器/永久激活/翻译插件
python 零基础视频教程
Python 界面开发实战教程
Python 爬虫实战教程
Python 数据分析实战教程
python 游戏开发实战教程
Python 电子书100本
Python 学习路线规划
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024c (备注python)
[外链图片转存中…(img-JJqHJdam-1713484812568)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!