你可以在家里做的9个很棒的Python项目想法
从简单的掷骰子模拟器到产品审查情绪分析器,学习如何利用Python构建有趣而有创意的项目
如果你问一些技术专家关于一种编程语言,这种语言足够强大,可以开发许多创造性的项目,同时又简单直观,你认为普遍的答案会是什么?
是的,没错——Python!
除了简单易学习外,Python还可以用于广泛的乐趣和令人敬畏的应用程序,如Web开发,数据科学,自动化和人工智能。betwayapp下载安装
Python是世界上最流行的用于制作很酷的个人项目的语言之一,所以为什么不加入到这些有趣且令人印象深刻的项目想法中来呢?
最后更新了4月2021年
构建11个项目,并从初学者到Python与世界上最有趣的基于项目的Python课程!|Ziyad Yehia,物联网学院
探索课程Python初学者开发人员的想法
滚动骰子模拟器
曾经遇到过你打电话给你的朋友的棋盘游戏的情况,只是意识到你失去了骰子?
好了,不用再担心了!您可以使用Python替换您的片状骰子,方法如下。
骰子辊的结果只不过是1到6之间的随机数。
要使用Python生成随机数,您只需要从Python内置的“随机”模块中导入“randint”功能。
randint函数的工作原理是在给定范围内生成一个随机整数。
因为我们希望骰子的数字介于1和6之间,所以我们简单地给randint函数一个最小值1和最大值6,然后将我们得到的值打印到屏幕上。
#导入“随机”包和'randint'模块从随机导入randint#让我们滚动!Roll = Randint(1,6)打印('你滚动',卷)
输出:
你掷出了6
瞧,就是这样!容易,对吧?
每次运行脚本时,它将生成1到6之间的随机数,就像骰子一样。
所以,下次你的朋友来的时候,你可以向他们展示这个漂亮的工具,让他们印象深刻。或者,至少拯救游戏之夜不被脆弱的骰子破坏。
2.岩石,纸,剪刀
我们都有玩这款游戏的美好回忆。有些人玩它纯粹是为了好玩,有些人玩它是为了解决看似无法解决的政治争端。
如果我告诉你,甚至可以在Python复制这个问题怎么办?这是正确的:基于Python的政治。
这场比赛的基础是“摇滚”击败'剪刀';'剪刀'击败'纸';和'纸张'击败'摇滚'。
如果你从算法的角度来看,这个游戏基本上是一组如果-那么的条件。如果双方都拉同一只手,那就是平局。如果一方拿出石头,另一方拿出纸,那么石头赢了;等等。
在Python中,可以使用' if '和' elif '语句轻松编码。这是Python类英语语法如何帮助开发人员将他们的想法转化为代码的一个主要示例。
这在与电脑对战时是最有意义的。一旦你决定了你的移动,你就可以使用随机函数让电脑在“石头”、“布”或“剪刀”中选择一个。我刚才提到的逻辑可以用来决定赢家。
3.桌面通知
如果你正在笔记本电脑上工作,突然收到一个通知,提醒你有一项任务正在后台运行,需要你注意,这不是很好吗?或者,你想关注的某只股票的当前价格的新闻。或者,一个简单的喝水提醒。
我们确实可以用Python在几分钟内构建这样一个通知程序,这并不令人惊讶。
为了开发此操作,我们需要使用“Py-notifier”包。通过键入以下代码,您可以从命令提示符/终端轻松安装此代码:
pip安装py-notifier
如果您在Windows上,您还需要安装Win10Toast包,如下所示:
pip安装win10taast.
PyNotifier包括将推送通知发送到桌面所需的一切,您可以设置标题,描述文本,以及控制屏幕上通知留下的时间
通过写几行代码,我们使用此应用程序完成不超过几分钟。
from pynotifier import Notification通知(title='它工作了!= ' ',描述,OMG !”,持续时间= 5,).send ()
以下是结果:
中级Python开发人员的想法:
4.倒计时+警报
当我们工作的时候,我们经常被当前的任务(或者youtube视频)所吸引,以至于忘记了时间。在这种情况下,倒计时可以派上用场。是的,我们的智能手机上确实有应用程序,但开发我们自己的应用程序不是很酷吗?另外,我们可以用建造这个项目作为拖延的借口!
Python的' time '包使这变得很容易。我们创建了一个函数,这个函数的时间被计算为它的参数;而' time '包中的' sleep '函数将确保程序在倒计时前等待1秒。
导入时间def倒计时(t):虽然t:mins,secs = divmod(t,60)timeformat ='{:02d}:{:02d}'。格式(mins,secs)打印(timeformat,end ='\ r')Time.sleep(1)T - = 1打印('再见!')倒计时(15)#这将创建一个15秒的计时器。
挑战:要将樱桃放在顶端,您可以将其集成在上面提到的桌面通知项目以及Python的报警模块,以便在计时器降至零时后立即出现警报。
在那里,你走了,不仅你有一个很酷的计时器应用程序,还有一个闹钟,提醒你硬期(这可能现在更近)。
5. Tic Tac Toe
让我们回到游戏。我相信我们都同意这是我们作为儿童(甚至是成年人,哈哈)的最佳游戏之一。
这是一个简单的双人游戏,可以用笔和纸玩。规则很简单:基本上是一个3×3方格,在这个方格中,两名玩家在各自的回合中标记“X”和“O”。第一个用自己的标记创造一条水平、垂直或对角线的玩家获胜。
要在Python中实现这一点,您可以使用' Pygame '库来设计游戏板并显示' X '和' O '。主算法将由与水平、垂直和对角线有关的if-else条件组成。一旦满足了这些条件,游戏就停止了,我们就有了赢家。
挑战:首先尝试以文本格式构建它,然后尝试使用图形包(如pygame)来构建它。
6.文档翻译
你对谷歌翻译着迷吗?它是如何帮助任何语言的文字翻译的?它基本上是魔法。好了,现在你也可以用python做魔术了!
您需要做的就是安装Googletrans库。您可以在命令提示符/终端窗口中执行此操作:
pip安装googletrans.
这有点令人惊讶的是,这是多么容易使用。看一看:
from googletrans import Translator Translator = Translator() output = Translator。翻译('是不是hiesen您吗?”,dest =“en”)打印(output.text)
“你叫什么名字?”
挑战:鉴于这是一个中间项目,请尝试让这个脚本读取某个文件,将其翻译成您选择的语言,然后将输出写入另一个文件。
提示:查看python的内置文件模块。
高级Python开发人员的想法:
7.求职Web刮刀
在网上找工作可能会成为一项棘手的任务,特别是有那么多的工作看起来如此相似。浏览许多求职门户网站,浏览每一个页面,阅读每一个职位描述,可能会让人感到厌烦。
如果你能把所有这些信息自动提取到一个电子表格中,然后看看它会不会很麻烦,这不是很棒吗?这就是Web刮痧和Python模块如' BeautifulSoup '的魔力所在。
Web scraper向网页发送http请求,并将所需网页上的所有信息发回给您(称为响应)。通过响应中的类的一些模式匹配,您可以找到存储职位标题、职位描述等的网页部分。然后,您可以在一个整洁的数据集中构造所有这些信息,并将其保存在一个excel电子表格中。
首先,你需要从命令提示符/终端安装所需的库:
PIP安装Beautifulsoup4 Pandas请求
然后在脚本中导入它们:
从BS4导入Beautifulsoupimport Pandas作为PDimport请求
我们现在开始建立一个Web刮刀,找到伦敦的分析师工作。您现在可以惊讶于如何在几行代码中执行此操作:
URL =“https://www.indeed.co.uk/jobs?q=analyst&l=london& fromage=last& sort=date”Page = Requests.get(URL)汤= leaseSoup(Page.Content,“HTML.Parser”)Job_soup=汤.Find(id =“excuefactcol”)作业\elems = Job_soup.find_all('div',class _ ='nobsearch-serpjobcard')
请注意,这确实需要一些操作来找出页面上要提取的元素,但如果您知道一些基本的HTML并右键单击web页面并使用浏览器的“inspect element”特性,那么这是非常简单的。
在scraper建立之后,现在让我们提取一些作业并将它们存储在一个整洁的数据集中:
theab_titles = [] company_names = []在范围内(len(job_elems)):作业= job_elems [i] .find('h2',class _ ='标题')。text.strip()。拆分('\ n')[0]公司= Job_elems [i] .find('span',class _ ='company')。text.strip()作业job_titles.append(作业)company_names.append(公司)作业_df = pd.dataframe({'Job':Job_title,'公司':company_name})打印(jobs_df)
输出看起来像这样:
挑战:提示:您可以使用我们已经导入的pandas库来编写excel文件!
8.发票承认
跟踪支出是重要的,几乎每个企业都有跟踪收据和发票的问题。
鉴于此类发票的数量巨大,手动存储和搜索信息可能会成为一场噩梦。这不仅是耗时费力的工作,而且想象一下,如果一个真正的人将这些微小的信息从发票传输到计算机,将多么容易出错。巨蟒又来救援了!
流行模块betwayapp下载安装的发展,“TESSERACT”和“OPENCV”有助于自动扫描此类文件。嵌入在这些模块中的深度学习算法不仅给我们提供了准确的文本,还可以在发票的尺寸内给我们提供坐标。这进一步允许我们处理这些模块返回的纯文本。
让我们快速安装我们的命令行/终端的“pytesseract”包:
pip安装pytesseract
安装后,下面的几行代码允许您扫描您选择的图像。
这是您的tesseract可执行文件pytesseract.pytesseract的完整路径。tesseract_cmd = r' c:/Program Files/Tesseract-OCR/ Tesseract .exe' #使用Tesseract打印OCR (pytesseract.image_to_string(Image.open('dummy.JPG')))
让我们看看结果:
挑战:尝试构建一个收据扫描应用程序,您可以与笔记本电脑的网络摄像头一起使用,以将数据收据数据输入电子表格!每次扫描一些东西时,如果你让应用程序变得“哔哔”!
9.产品审查刮刀+情感分析
在观看某人建议给你的电影之前,你做的第一件事是什么,或者在亚马逊上买东西?签出评论,对吗?
但是,您只能看到第一页的几个评论,并通过后续页面浏览浏览浏览浏览。什么如果在第一次页面中只有很好的评论?当您浏览页面时,您如何跟踪审查是否积极或负面?
嗯,我们上面讨论过的网络抓取可以帮助我们轻松检索给定产品的所有评论。
鉴于此数据,我们现在可以使用Python的TextBlob库在一行代码中找出情绪。TextBlob可以返回-1之间的极性分数(非常否定)和1(非常正)。找到了所有评论的这个价值,您可以平均找到电影的整体情绪。
首先,您需要从命令提示符或终端中安装Python的TextBlob模块:
pip安装textblob.
现在你可以使用TextBlob来计算不同文本的极性分数:
from textblob import TextBlobreview1 = '电影非常好。“有些场景很好,但故事太无聊了。”' polarity_score1 = TextBlob(review1).sentiment. 'polaritypolarity_score2 = TextBlob .sentiment (review2)。print('极性评分1:',polarity_score1)print('极性评分2:',polarity_score2)
输出:
极性得分1:0.78极性分数2:-0.15
挑战:尝试下载第一个100条评论,其中包含亚马逊上的产品的文本,并计算它们的极性分数。然后,计算平均值。最后,看看这与产品的星值有多匹配。基于五星级评级系统,良好的比赛将看到平均极性分数为0-0.2的产品,为1星,极性得分为0.2-0.4颗,0.4-0.6为3星,等等。
包起来
唷!到目前为止,我相信您已经意识到Python的宏伟和强大。实践的重要性再怎么强调也不为过,我真的希望你能精力充沛地建立自己的一些项目(如果不是所有的项目!)
如果你喜欢这篇文章,我邀请你在Udemy上查看我的Python圣经课程。Python圣经是为初学者量身定制的,它包含了许多有趣的项目来增强你的Python技能。
谢谢你的阅读,有一个美好的蟒蛇 - 你美丽的人!