Skip to content

Commit 95e8e6d

Browse files
committed
2016.12.21 edit lesson 4 notebook
1 parent a470981 commit 95e8e6d

1 file changed

Lines changed: 109 additions & 104 deletions

File tree

python_basic/python_basic_lesson_04.ipynb

Lines changed: 109 additions & 104 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
},
3131
"outputs": [],
3232
"source": [
33+
"# 举例\n",
3334
"# 猜数,机器猜\n",
3435
"\n",
3536
"min = 0\n",
@@ -55,102 +56,29 @@
5556
"cell_type": "markdown",
5657
"metadata": {},
5758
"source": [
58-
"* 日期库 datetime 用法介绍,datetime、time 等库的介绍,获得日期,字符串和日期转换,日期格式介绍,日期加减计算"
59-
]
60-
},
61-
{
62-
"cell_type": "markdown",
63-
"metadata": {},
64-
"source": [
65-
"### 日期\n",
59+
"### 日期处理\n",
6660
"\n",
6761
"datetime 是Python处理日期和时间的标准库,用于获取日期和进行日期计算等。\n",
6862
"\n",
69-
"理解 timestamp,UTC标准时区,时差\n",
63+
"理解 timestamp,UTC标准时区,时差这些概念。\n",
7064
"\n",
71-
"Python 的日期相关的库有 datetime, time, calendar\n",
65+
"Python 的日期相关的标准库比较多,有 datetime, time, calendar\n",
7266
"\n",
73-
"Datetime 包括 date 日期,time 时间, datetime 日期和时间,tzinfo 时区,timedelta 时间跨度计算 等主要对象\n",
74-
"\n",
75-
"获取当前日期和时间:now = datetime.now()\n",
67+
"datetime 库包括 date 日期,time 时间, datetime 日期和时间,tzinfo 时区,timedelta 时间跨度计算 等主要对象。\n",
7668
"\n",
69+
"获取当前日期和时间:`now = datetime.now()`\n",
7770
"\n",
7871
"日期戳和日期的区别,日期戳更加精确,日期只是年月日\n",
7972
"根据需要使用,大多数情况下只需要日期即可\n",
8073
"\n",
8174
"Time 对于时间的处理更加精确,用时间戳的表达方式\n",
8275
"\n",
83-
"时间戳定义为格林威治时间1970年01月01日00时00分00秒起至现在的总秒数,时间戳是惟一的\n",
84-
"显示今天日期\n",
85-
"\n",
86-
"显示今天 datetime 和 time\n",
87-
"\n",
88-
"连续运行显示时间戳,看看时间戳差了多少毫秒\n",
89-
"\t\n",
90-
"看看日期、时间的数据结构\n",
91-
"\t\n",
92-
"用循环显示 10 次时间戳\n",
93-
"\n",
94-
"用 time() 来计时,算10万次平方,看看哪台电脑速度快\n",
95-
"\n",
96-
"日期库-字符串和日期的转换\n",
97-
"\n",
98-
"字符串转化为日期:datetime.strptime()\n",
99-
"\n",
100-
"日期转换为字符串:datetime.strftime()\n",
101-
"\n",
102-
"日期库 – 各类格式\n",
103-
"\n",
104-
"日期字符串格式,举例\n",
105-
"Date format string, example: \n",
106-
"cday1 = datetime.now().strftime('%a, %b %d %H:%M')\n",
107-
"cday2 = datetime.now().strftime('%A, %b %d %H:%M, %j')\n",
108-
"cday3 = datetime.now().strftime('%Y-%m-%d %H:%M:%S')\n",
109-
"\n",
110-
"日期库 – 日期格式说明\n",
111-
"\n",
112-
"%a 英文星期的简写 (shorthand of week in English)\n",
113-
"%A 英文星期的完整拼写 (longhand of week in English)\n",
114-
"%b 英文月份的简写 (shorthand of month in English)\n",
115-
"%B 英文月份的完整拼写 (longhand of month in English)\n",
116-
"%c 本地当前的日期与时间 (current local date and time)\n",
117-
"%d 日期数, 1-31之间 (date, between 1-31))\n",
118-
"%H 小时数, 00-23之间 (hour, between 00-23))\n",
119-
"%I 小时数, 01-12之间 (hour, between 01-12)\n",
120-
"%m 月份, 01-12之间 (month, between 01-12)\n",
121-
"%M 分钟数, 01-59之间 (minute, 01-59)\n",
122-
"%j 本年从第1天开始计数到当天的天数 (total days from 1st day of this year till now)\n",
123-
"%w 星期数, 0-6之间(0是周日) (day of the week, between 0-6, 0=Sunday)\n",
124-
"%W 当天属于本年的第几周,周一作为一周的第一天进行计算 (week of the year, starting with Monday )\n",
125-
"%x 本地的当天日期 (local date)\n",
126-
"%X 本地的当前时间 (local time)\n",
127-
"%y 年份,0-99之间 (year, between 0-99)\n",
128-
"%Y 年份的完整拼写 (longhand of year)\n",
129-
"\n",
130-
"日期计算\n",
131-
"\n",
132-
"对日期和时间进行加减实际上就是把 datetime 往后或往前计算,得到新的 datetime\n",
133-
"需要导入 datetime 的 timedelta 类\n",
134-
"\n",
135-
"练习和讨论\n",
136-
"\n",
137-
"输入刚才时间格式转换的例子\n",
138-
"\t\n",
139-
"尝试改变时间格式的各类参数,看看输出的样式有什么不同\n",
140-
"\t\n",
141-
"输入刚才时间加减的例子\n",
142-
"\t\n",
143-
"尝试改变时间加减的各类参数,看看年月日时分秒都可以怎么加减\n",
144-
"\n",
145-
"\n",
146-
"输入一个年份,比如 20030801 这样的字符串,转换为标准日期格式并显示\n",
147-
"\t\n",
148-
"继续上面,输入后,显示这个日期之前一年和之后一年分别是星期几?"
76+
"时间戳定义为格林威治时间1970年01月01日00时00分00秒起至现在的总秒数,时间戳是惟一的\n"
14977
]
15078
},
15179
{
15280
"cell_type": "code",
153-
"execution_count": 1,
81+
"execution_count": 2,
15482
"metadata": {
15583
"collapsed": false
15684
},
@@ -159,21 +87,29 @@
15987
"name": "stdout",
16088
"output_type": "stream",
16189
"text": [
162-
"2016-12-10 08:59:11.176761\n",
163-
"2016-12-10\n"
90+
"2016-12-21 15:16:25.879226\n",
91+
"2016-12-21\n",
92+
"1482304585.879344\n"
16493
]
16594
}
16695
],
16796
"source": [
97+
"# 显示今天日期\n",
98+
"# 显示今天 datetime 和 time\n",
99+
"\n",
168100
"from datetime import datetime, date\n",
169101
"\n",
170102
"print(datetime.now())\n",
171-
"print(date.today())"
103+
"print(date.today())\n",
104+
"\n",
105+
"import time\n",
106+
"\n",
107+
"print(time.time())"
172108
]
173109
},
174110
{
175111
"cell_type": "code",
176-
"execution_count": 2,
112+
"execution_count": 3,
177113
"metadata": {
178114
"collapsed": false
179115
},
@@ -182,22 +118,21 @@
182118
"name": "stdout",
183119
"output_type": "stream",
184120
"text": [
185-
"1481331557.520238\n",
186-
"2016-12-10 08:59:17.520305\n"
121+
"<class 'float'>\n",
122+
"<class 'datetime.datetime'>\n"
187123
]
188124
}
189125
],
190126
"source": [
191-
"from datetime import datetime, date\n",
192-
"import time\n",
127+
"# 时间和日期戳的数据类型\n",
193128
"\n",
194-
"print(time.time())\n",
195-
"print(datetime.now())"
129+
"print(type(time.time()))\n",
130+
"print(type(datetime.now()))"
196131
]
197132
},
198133
{
199134
"cell_type": "code",
200-
"execution_count": 3,
135+
"execution_count": 1,
201136
"metadata": {
202137
"collapsed": false
203138
},
@@ -206,15 +141,12 @@
206141
"name": "stdout",
207142
"output_type": "stream",
208143
"text": [
209-
"<class 'float'>\n",
210-
"<class 'datetime.datetime'>\n"
144+
"2016-12-10 08:59:11.176761\n",
145+
"2016-12-10\n"
211146
]
212147
}
213148
],
214-
"source": [
215-
"print(type(time.time()))\n",
216-
"print(type(datetime.now()))"
217-
]
149+
"source": []
218150
},
219151
{
220152
"cell_type": "code",
@@ -241,13 +173,14 @@
241173
}
242174
],
243175
"source": [
176+
"# 连续运行显示时间戳,看看时间戳差了多少毫秒\n",
244177
"for i in range(10):\n",
245178
" print(time.time())"
246179
]
247180
},
248181
{
249182
"cell_type": "code",
250-
"execution_count": 5,
183+
"execution_count": 7,
251184
"metadata": {
252185
"collapsed": false
253186
},
@@ -256,11 +189,13 @@
256189
"name": "stdout",
257190
"output_type": "stream",
258191
"text": [
259-
"time: 0.01288294792175293\n"
192+
"time: 0.011564016342163086\n"
260193
]
261194
}
262195
],
263196
"source": [
197+
"# 用 time() 来计时,算10万次平方,看看哪台电脑速度快\n",
198+
"\n",
264199
"a = time.time()\n",
265200
"for i in range(100000):\n",
266201
" j = i * i \n",
@@ -270,9 +205,49 @@
270205
"print('time:', b-a)"
271206
]
272207
},
208+
{
209+
"cell_type": "markdown",
210+
"metadata": {},
211+
"source": [
212+
"日期库-字符串和日期的转换\n",
213+
"\n",
214+
"字符串转化为日期:datetime.strptime()\n",
215+
"\n",
216+
"日期转换为字符串:datetime.strftime()\n",
217+
"\n",
218+
"日期库 – 各类格式\n",
219+
"\n",
220+
"日期字符串格式,举例\n",
221+
"Date format string, example: \n",
222+
"cday1 = datetime.now().strftime('%a, %b %d %H:%M')\n",
223+
"cday2 = datetime.now().strftime('%A, %b %d %H:%M, %j')\n",
224+
"cday3 = datetime.now().strftime('%Y-%m-%d %H:%M:%S')\n",
225+
"\n",
226+
"日期库 – 日期格式说明\n",
227+
"\n",
228+
"%a 英文星期的简写 (shorthand of week in English)\n",
229+
"%A 英文星期的完整拼写 (longhand of week in English)\n",
230+
"%b 英文月份的简写 (shorthand of month in English)\n",
231+
"%B 英文月份的完整拼写 (longhand of month in English)\n",
232+
"%c 本地当前的日期与时间 (current local date and time)\n",
233+
"%d 日期数, 1-31之间 (date, between 1-31))\n",
234+
"%H 小时数, 00-23之间 (hour, between 00-23))\n",
235+
"%I 小时数, 01-12之间 (hour, between 01-12)\n",
236+
"%m 月份, 01-12之间 (month, between 01-12)\n",
237+
"%M 分钟数, 01-59之间 (minute, 01-59)\n",
238+
"%j 本年从第1天开始计数到当天的天数 (total days from 1st day of this year till now)\n",
239+
"%w 星期数, 0-6之间(0是周日) (day of the week, between 0-6, 0=Sunday)\n",
240+
"%W 当天属于本年的第几周,周一作为一周的第一天进行计算 (week of the year, starting with Monday )\n",
241+
"%x 本地的当天日期 (local date)\n",
242+
"%X 本地的当前时间 (local time)\n",
243+
"%y 年份,0-99之间 (year, between 0-99)\n",
244+
"%Y 年份的完整拼写 (longhand of year)\n",
245+
"\n"
246+
]
247+
},
273248
{
274249
"cell_type": "code",
275-
"execution_count": 6,
250+
"execution_count": 5,
276251
"metadata": {
277252
"collapsed": false
278253
},
@@ -283,7 +258,7 @@
283258
"text": [
284259
"2016-05-02 18:19:59\n",
285260
"<class 'datetime.datetime'>\n",
286-
"2016, 12 10 08:59\n",
261+
"2016, 12 21 18:22\n",
287262
"<class 'str'>\n"
288263
]
289264
}
@@ -300,7 +275,7 @@
300275
},
301276
{
302277
"cell_type": "code",
303-
"execution_count": 7,
278+
"execution_count": 6,
304279
"metadata": {
305280
"collapsed": false
306281
},
@@ -309,7 +284,7 @@
309284
"name": "stdout",
310285
"output_type": "stream",
311286
"text": [
312-
"Sat, Dec 10 09:00\n"
287+
"Wed, Dec 21 18:22\n"
313288
]
314289
}
315290
],
@@ -387,6 +362,27 @@
387362
"print(type(t))"
388363
]
389364
},
365+
{
366+
"cell_type": "markdown",
367+
"metadata": {},
368+
"source": [
369+
"日期计算\n",
370+
"\n",
371+
"对日期和时间进行加减实际上就是把 datetime 往后或往前计算,得到新的 datetime\n",
372+
"需要导入 datetime 的 timedelta 类\n",
373+
"\n",
374+
"练习和讨论\n",
375+
"\n",
376+
"输入刚才时间格式转换的例子\n",
377+
"\t\n",
378+
"尝试改变时间格式的各类参数,看看输出的样式有什么不同\n",
379+
"\t\n",
380+
"输入刚才时间加减的例子\n",
381+
"\t\n",
382+
"尝试改变时间加减的各类参数,看看年月日时分秒都可以怎么加减\n",
383+
"\n"
384+
]
385+
},
390386
{
391387
"cell_type": "code",
392388
"execution_count": 11,
@@ -435,6 +431,15 @@
435431
"print(now1)"
436432
]
437433
},
434+
{
435+
"cell_type": "markdown",
436+
"metadata": {},
437+
"source": [
438+
"\n",
439+
"输入一个年份,比如 20030801 这样的字符串,转换为标准日期格式并显示\n",
440+
"继续上面,输入后,显示这个日期之前一年和之后一年分别是星期几?"
441+
]
442+
},
438443
{
439444
"cell_type": "markdown",
440445
"metadata": {
@@ -893,7 +898,7 @@
893898
"name": "python",
894899
"nbconvert_exporter": "python",
895900
"pygments_lexer": "ipython3",
896-
"version": "3.4.5"
901+
"version": "3.5.2"
897902
}
898903
},
899904
"nbformat": 4,

0 commit comments

Comments
 (0)