lixiangdude / investigate-texts-and-calls

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

调查短信与电话

项目概况

在这一项目中,利用一组伪造的短信与电话通信记录,你将会完成五个任务。你将运用 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.csvtexts.csv

关于数据

短信和电话数据已由 CSV 文件给出,在每个文件中,数据已经存储为一系列表格。 文本的子列已经整理为如下格式:

短信 = [	发送电话号码 (字符串),
	接收电话号码 (字符串),
	短信的时间戳 (字符串)]

电话列表中的每个元素都已整理为如下结构:

电话 = [	主叫电话号码 (字符串),
	被叫电话号码 (字符串),
	电话开始的时间戳 (字符串),
	电话持续时间(秒) (字符串)]

所有电话号码长度都是10位。每个电话号码均以指示位置和/或类型的代号开始。有三种不同的电话号码,每一种都有不同的格式:

  • 固定电话以括号内的区号开始。区号的长度不定,但总是以0打头,例如:(022)40840621
  • 移动电话不包含括号,通过在数字中间添加一个空格的方式增加可读性。移动电话的移动代码指的是它的前四个数字,并且以 7、 8 或 9 开头。例如:93412 66159
  • 电话促销员的号码没有括号或空格 , 但以140开头. 例如: 1402316533

第二步

按照文件中的提示完成五个任务。 将你的代码添加到每个文件的最后。

运行每个文件后,输出任务要求的内容。在开发过程中可以使用其他打印语句,但请在提交之前移除所有要求外的打印语句。提交的文件应该只打印任务要求的内容。

第三步

在提交之前,根据项目评审标准检查你的项目。Udacity 的项目评审员会根据这个标准对你的项目给予反馈,并对你的代码给出有用的指导。

标准 符合规范
代码品质 你的代码应具有良好的结构与可读性,请遵循本课程中所指出的最佳规范。
只打印任务要求的内容 在开发过程中可以使用其他打印语句,但请在提交之前移除所有要求外的打印语句。提交的文件应该只打印任务要求的内容。
任务0成功完成 脚本正确的输出了第一条短信与最后一次电话的信息。
任务1成功完成 脚本正确的输出了数据集中不同的电话号码的数目。
任务2成功完成 脚本正确的输出了通话时长最长的电话号码,以及通话时间(秒)。
任务3成功完成 脚本正确的输出被叫电话号码区号或移动代码,其主叫为班加罗尔的固定电话;在这些记录中,被叫也是班加罗尔固话所占比例是多少?
任务4成功完成 脚本正确的输出了疑似电话推销员的号码列表。

提交

提交压缩文件,命名为 submit.zip ,包含并只包含下列五个文件:

  • Task0.py
  • Task1.py
  • Task2.py
  • Task3.py
  • Task4.py

About


Languages

Language:Python 100.0%