PY4E课程官网:https://www.py4e.com/
参考文章(Github):
Assignment 10.2
Write a program to read through the mbox-short.txt and figure out the distribution by hour of the day for each of the messages.
You can pull the hour out from the 'From ' line by finding the time and then splitting the string a second time using a colon.
From stephen.marquard@uct.ac.za Sat Jan 5 09:14:16 2008
Once you have accumulated the counts for each hour, print out the counts, sorted by hour as shown below.
写一个程序来读取mbox-short.txt,并计算出每条信息在一天中的小时数分布。
你可以从'From'行中找出时间,然后用冒号将字符串第二次拆分,从而得出小时数。
From stephen.marquard@uct.ac.za Sat Jan 5 09:14:16 2008
一旦你积累了每个小时的计数,打印出计数,按小时排序,如下所示
import sys
fname = input('Enter the file name: ')
try:
fhand = open(fname)
except:
print(fname, 'File does not exist ')
sys.exit()
counts = {}
for line in fhand:
words = line.split()
if words and words[0] == 'From':
time = words[5]
time_pieces = time.split(':')
hour = int(time_pieces[0])
counts[hour] = counts.get(hour, 0) + 1
print(sorted(counts.items()))
>>>Enter the file name: mbox-short.txt
[(4, 3), (6, 1), (7, 1), (9, 2), (10, 3), (11, 6), (14, 1), (15, 2), (16, 4), (17, 2), (18, 1), (19, 1)]
课程评价
Python for Everybody这套课程可以作为入门Python使用的第一步,基本来说是够用的。Python for Everybody这套课程是真的基础课,老师的引导能力很强,很适合由浅入深的入门学习,但是在知识深度上当然是不够的,这部分还要在今后不断学习和补充。
个人感想
Python编程基础阶段结束,简单说一下感想。
对我个人而言,在之前的学习中,Python一直算不上生产工具,作业和参与的项目一直用java来完成。在某些需要理解Python代码的场合,凭借专业基础和不会就查的技能,基本也能看懂。
上了硕士之后,一方面越来越意识到Python作为数据分析工具在科研和生产的重要性,另一方面大部分模型也都用Python来实现。鉴于日常学习和科研的需要,快速地入门一下Python是当务之急。
当我们在学习编程工具时,应始终记得,语言只是工具,最重要的是培养发现问题、分析问题、解决问题的思维和能力,编程只是培养这种能力的一种较为直观的方式,不要过于深入钻研编程细节,使自己变成只知道抡锤子的"工具人"。补充基础的同时,也要结合自己的技术环境不断实践,只学不用效率比较低。
当前的学习思路如下图所示。
之前在知乎博主”猴子“的回答中看到一张很有启发的图,贴在下面。