在这一项目中,利用一组伪造的短信与电话通信记录,你将会完成五个任务。你将运用 Python 分析并回答与数据集中的短信与通话记录相关的问题。
完成项目后,你将可以:
- 设计并编写 Python 程序,完成现实任务
- 在计算机上编写 Python 程序
- 写出符合 PEP8 编码规范的 Python 代码,代码具有良好的可读性
- 在 Python 中处理字符串和数值数据
- 选择并使用 Python 的内置数据结构
- 使用互联网资源来帮助你
- 使用 Python 的内置函数,并编写自己的函数
- 使用 Python 中的循环和条件语句
你将在现实场景中应用你学到的知识。这五个任务将为你提供亲自解决各种编程问题的经验。我们会对你的代码进行审核,通过反馈帮助你提高 Python 编程技能。
为了完成这个项目,首先应完成第1部分 Python 编程介绍的课程。如果你已经有了以上列出的技能,你就可以尝试这个项目,如果你发现你需要更新你的知识,那就返回课程阅读材料。
在这个 Lab 中,你将完成 5 个任务,回答和 2016 年 9 月间的一组电话和短信通信记录相关的问题。
点击这里下载并打开压缩文件夹 . 在文件夹 investigate texts and calls
下, 你将找到 5 个 Python 文件 Task0.py
~ Task4.py
与 2 个 CSV 文件 calls.csv
和 texts.csv
。
短信和电话数据已由 CSV 文件给出,在每个文件中,数据已经存储为一系列表格。 文本的子列已经整理为如下格式:
短信 = [ 发送电话号码 (字符串),
接收电话号码 (字符串),
短信的时间戳 (字符串)]
电话列表中的每个元素都已整理为如下结构:
电话 = [ 主叫电话号码 (字符串),
被叫电话号码 (字符串),
电话开始的时间戳 (字符串),
电话持续时间(秒) (字符串)]
所有电话号码长度都是10位。每个电话号码均以指示位置和/或类型的代号开始。有三种不同的电话号码,每一种都有不同的格式:
- 固定电话以括号内的区号开始。区号的长度不定,但总是以0打头,例如:
(022)40840621
。 - 移动电话不包含括号,通过在数字中间添加一个空格的方式增加可读性。移动电话的移动代码指的是它的前四个数字,并且以 7、 8 或 9 开头。例如:
93412 66159
。 - 电话促销员的号码没有括号或空格 , 但以140开头. 例如:
1402316533
。
按照文件中的提示完成五个任务。 将你的代码添加到每个文件的最后。
运行每个文件后,输出任务要求的内容。在开发过程中可以使用其他打印语句,但请在提交之前移除所有要求外的打印语句。提交的文件应该只打印任务要求的内容。
在提交之前,根据项目评审标准检查你的项目。Udacity 的项目评审员会根据这个标准对你的项目给予反馈,并对你的代码给出有用的指导。
标准 | 符合规范 |
---|---|
代码品质 | 你的代码应具有良好的结构与可读性,请遵循本课程中所指出的最佳规范。 |
只打印任务要求的内容 | 在开发过程中可以使用其他打印语句,但请在提交之前移除所有要求外的打印语句。提交的文件应该只打印任务要求的内容。 |
任务0成功完成 | 脚本正确的输出了第一条短信与最后一次电话的信息。 |
任务1成功完成 | 脚本正确的输出了数据集中不同的电话号码的数目。 |
任务2成功完成 | 脚本正确的输出了通话时长最长的电话号码,以及通话时间(秒)。 |
任务3成功完成 | 脚本正确的输出被叫电话号码区号或移动代码,其主叫为班加罗尔的固定电话;在这些记录中,被叫也是班加罗尔固话所占比例是多少? |
任务4成功完成 | 脚本正确的输出了疑似电话推销员的号码列表。 |