神译局是36氪旗下编译团队,关注科技、商业、职场、生活等领域,重点介绍国外的新技术、新观点、新风向。
编者按:学编程最快的方式是什么?看书?看视频课程?要想学好编程没有捷径,正确的学习方法加上大量的代码练习才是正解。在项目中学习锻炼,通过实战演练可以真正运用所学到的知识,并了解到很多实际开发的经验和技巧。本文为你精选了6个实用的Python项目,只需要一个周末的时间即可完成。译自Medium,作者 Frank Andrade,原标题为“6 Python Projects You Can Finish in a Weekend”。
照片来源:Danial Igdery on Unsplash
学习Python很容易吗?也许你花了很多时间看教学视频、看教科书;但是如果不能把学到的知识付诸实践,那基本就是在浪费时间,效果也并不显著。
这就是为什么你应该多做一些Python项目练手。一个项目可以帮助你把所学到的知识整合在一起,激发你的学习动力,想出解决问题的方法,并最终用代码解决这些问题。
在这篇文章中,我列出了一些曾经帮助我自己提高Python编程水平的项目,希望也能帮助到你。这些项目是按难度排列的,适合初学者的低难度项目在前面,较难的项目在最后。
剪刀石头布是一个经典游戏,我相信你一定知道。这是一个简单的手势游戏,通常是两个人一起玩,每个玩家同时伸出手,摆出剪刀石头布三个手势中的一个手势。通过这个初级项目,我们可以练习Python的一些基本操作内容,比如列表、if语句和如何输入信息。
我们的目标是建立一个游戏系统,让一个决定出石头的玩家能够击败另一个选择出剪刀的玩家,但会输给出布的玩家,而出布的玩家会输给出剪刀的玩家。
图片来源:Pixabay上的OpenClipart-Vectors
这是你可以用Python开发出的最简单的游戏。完成这个项目后,你可以用Pygame库开发出更复杂的带有图像和声音的游戏。下面是一些你可以用Pygame库开发的游戏。
井字棋
Hangman猜字游戏
猜数字
问答游戏
贪吃蛇
图片:Clker-Free Vector-Images on Pixabay
在工作中很多时候需要按日期对文件夹进行排序,或用预先定义的命名规则来设置文件名。你当然可以手动完成这些事情,但是Python代码能够为我们节省大量时间。
这个项目的目的是重命名存储在计算机上的数百个文件,让用户可以很容易地查找识别这些文件。例如,你可以把文件的创建日期以“MM-DD-YY”的格式添加到文件名中,这样任何人都可以很容易地找到某个文件。
为了在Python中实现这一点,我们需要使用Python自带的操作系统模块。它提供了与操作系统交互的功能,允许用Python代码实现很多计算机控制功能。本教程将帮助你学习使用操作系统模块。另一个有用的库是一个名为 re 的内置包。这个内置包支持正则表达式的使用,如果你想在文件名中提取以及重复使用一些文本模式,你可能会需要这个内置包。
你可以用Python操作系统库实现的其他操作任务有:
创建多个文件夹并重命名它们
删除一个目录
识别当前工作目录
像更新Excel报表这样的重复性的任务占用了我们大量的时间。幸运的是,Python中的openpyxl库可以自动完成大部分的Excel任务。
这个项目的用途是使用Python代码来执行Excel任务,如制作透视表、绘制图表、应用Excel公式和格式化报表。一旦我们完成了代码的编写,我们只需要运行脚本就可以创建出一个像下面这样的报表。
图片由作者提供
你甚至可以创建一个Python函数,将你的Python脚本转换成可执行文件(.exe),并安排Python脚本在每月、每周或每天自动创建一份报表。
图片来源:Geralt on Pixabay
编写Python代码是一件很酷的事情,但你知道更酷的是什么吗?让使用者能够通过图形用户界面进行交流,这样任何人都可以测试你所开发的东西。
Python的库Tkinter、PyQt和Kivi可以帮助你创建一个带有按钮、窗口和许多其他小部件的图形用户界面,方便用户使用。
这个项目的目的很简单:为你已经开发完成的任何一个项目创建一个GUI。你也可以为本文中列举的项目创建一个GUI,或者从以下列表中获得一些灵感。
年龄计算器:用户输入他们的出生日期,就可以自动显示他们的年龄。
计算器:如果你在学习Python时曾经开发过计算器,用GUI来增强输出效果吧。可以从你操作系统自带的计算器中汲取一些灵感哦。
货币转换器:建立一个货币转换器应用程序,允许用户输入某一种货币的数值,显示出目标货币的转换值。
照片来源:Le Buzz on Unsplash
如果你曾经梦想过创建一个网站,我有个好消息,你可以用Python来做!Django和Flask是Python中最流行的两个网络开发框架。
Django是一个高水平的Python网络框架,用它可以快速制作网站并且网页设计简洁。它速度快,可扩展性强,重视网络安全,像Instagram、Pinterest和《华盛顿邮报》这样的网站都是用Django开发的。而Flask是一个轻量级的框架,提供网络应用的基本功能。用这个框架只需要很少的编码量,所以它是一个学习Web开发基础的优秀框架。
对于Django的初学者来说,建立一个作品展示网站来展示你的成果会是一个很酷的项目。你的第一个网站可能不像那些大网站一样高大上;但是,通过这个项目,你会学到一些基础知识,比如如何渲染模板,添加CSS、JavaScript和图片的静态文件。
图片来源:Thibault Penin on Unsplash
你有没有想过Netflix、Hulu或Amazon是如何推荐一部新电影的?那是一个程序员建立的推荐系统,能够根据用户的不同信息找到最好的电影。
推荐系统是一个旨在预测用户对某一特定项目的偏好的程序。在这种个项目中,推荐系统会基于某些数据预测用户喜欢看的电影。在Python中,我们可以使用Pandas、Numpy和Scikit-learn等库来开发一个推荐引擎,包含从基本模型到基于内容和协同过滤的推荐系统。
为了开发这个项目,你需要一个包含电影标题和至少一个情节描述的数据集。
以上就是这6个项目的介绍,希望对你有帮助。动手做一做吧。
译者:张茉茉