【Python for Everybody(Python Data Structures)】Week 6 | Chapter 10 题目汇总及阶段感想

PY4E课程官网:https://www.py4e.com/

参考文章(Github):

  1. ed-lau/python-for-everybody
  2. kalpesh14m/Python-For-Everybody-Answers











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是当务之急。

当我们在学习编程工具时,应始终记得,语言只是工具,最重要的是培养发现问题、分析问题、解决问题的思维和能力,编程只是培养这种能力的一种较为直观的方式,不要过于深入钻研编程细节,使自己变成只知道抡锤子的"工具人"。补充基础的同时,也要结合自己的技术环境不断实践,只学不用效率比较低。

当前的学习思路如下图所示。

之前在知乎博主”猴子“的回答中看到一张很有启发的图,贴在下面。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
数据结构和算法是计算机科学中非常重要的概念和工具。它们用来解决各种计算问题,并帮助我们设计高效的程序。 在Python中,有许多常用的数据结构和算法可用于处理和操作数据。以下是一些常见的数据结构和算法: 1. 数组(Array):数组是一种存储固定大小元素的数据结构。在Python中,我们可以使用列表(List)来表示数组。 2. 链表(Linked List):链表是一种动态数据结构,它通过节点(Node)的方式来存储和访问数据。在Python中,我们可以使用列表(List)或自定义类来实现链表。 3. 栈(Stack)和队列(Queue):栈和队列都是一种特殊的数据结构,用来存储和访问数据。在Python中,我们可以使用列表(List)来实现栈和队列。 4. 树(Tree)和图(Graph):树和图是一种常见的非线性数据结构,用来表示层次关系和连接关系。在Python中,我们可以使用自定义类来实现树和图。 5. 排序算法:排序算法是一种将数据按照特定顺序进行排序的算法。在Python中,我们可以使用内置的sorted()函数来进行排序,或者实现一些常见的排序算法,如冒泡排序、插入排序、选择排序、快速排序等。 6. 查找算法:查找算法是一种在数据集中查找指定元素的算法。在Python中,我们可以使用内置的in关键字来进行简单的查找,或者实现一些高级的查找算法,如二分查找、哈希表等。 除了上述提到的数据结构和算法外,Python还提供了许多其他实用的数据结构和算法,如堆(Heap)、哈希表(Hash Table)、图算法(Graph Algorithms)等,可以根据具体问题选择合适的工具。 总而言之,了解和掌握数据结构和算法对于Python开发者来说是非常重要的,它们可以帮助我们提高程序效率、解决复杂的计算问题,并在面试和竞赛中展示出色的编程能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值