关于我学习了《编程小白的第一本Python入门书》之后的感受
200110900207 计算机类2班 胡敏
其实这本书更多的不是写关于Python的介绍的,而是关于Python的学习,也就是一门语言的学习,在此基础上我又去查了一些我在读这本书我所有的一些问题,和我在读这本书时所遇到的一些瓶颈,下面我就讲关于我了解之后再来回顾这本书的意义,以及我对Python的一些看法。
很多人认为,Python与其他语言相比,具有语法简洁的特点。但这种简洁到底体现在哪些地方,很少有人能说清楚。但是对于这个问题我认为这个回答还不错:“Python语法主要用来精确表达问题逻辑,接近自然语言,只有33个保留字,十分简洁。实现相同程序功能,Python语言的代码行数仅相当于其他语言的1/5至1/10。更少的代码行数、更简洁的表达方式可减少程序错误以及缩短开发周期。“
这段话中的两个关键点个人非常赞同。第一、语法是否简洁,主要要看其是否接近自然语言。第二、解决问题所需要的代码行数是否较少。
对于Python我觉得我们大多数人都会有许多的疑问,那就是Python可以用来干些什么,以及应该怎么才能学好这个语言。我对于一些像我一样的初学者我建议可以去看一下《编程小白的第一本Python入门书》。我也是在读了这本书之后再去了解关于学习Python可以做些什么,下面我就说一些关于我了解到的Python。
首先我们来了解什么是Python?
Python是一种面向对象的高级编程语言,具有集成的动态语义,主要用于Web和应用程序开发。它在快速应用程序开发领域极具吸引力,因为它提供动态类型和动态绑定选项。
其次是使用Python可以做什么
Python编程语言可适用于数据科学,机器学习,系统自动化,Web和API开发等。
Python最基本的使用示例就是脚本语言和自动化语言。Python不仅仅是shell脚本或批处理文件的替代品;还用于自动化与Web浏览器或应用程序GUI的交互,或者在Ansible和Salt等工具中进行系统配置和配置。
1、使用Python进行通用应用程序编程
您可以使用Python创建命令行和跨平台GUI应用程序,并将它们部署为自包含的可执行文件。虽然Python不具有从脚本生成独立二进制文件的本机能力,但是可以使用诸如cx_Freeze和PyInstaller之类的第三方包来实现这一点。
2、使用Python进行数据科学和机器学习
复杂的数据分析已经成为其中最快的领域之一,也是Python的经典使用案例之一。大多数用于数据科学或机器学习的库都具有Python接口的,这使得该语言成为机器学习库和其他数值算法最流行的高级命令接口。
3、Python中的Web服务和REST API
Python的本地库和第三方Web框架提供了快速方便的方法来创建从几行代码中的简单RESTAPI到成熟的数据驱动站点的所有内容。Python的最新版本对异步操作有很强的支持,允许站点使用正确的库每秒处理数万个请求。
4、Python中的元编程和代码生成
在Python中,语言中的所有东西都是一个对象,包括Python模块和库本身。这使Python能够作为高效的代码生成器工作,从而能够编写操纵它们自己的函数并具有在其他语言中很难或不可能实现的那种可扩展性的应用程序。
Python还可以用来驱动代码生成系统,例如LLVM,以高效地创建其他语言的代码。
5、Python中的“胶水代码”
Python通常被描述为“粘合语言”,意思是它可以让不同的代码(通常是具有C语言接口的库)进行相互操作。它在数据科学和机器学习中的应用就是这样的,但这只是一个总体概念的化身。
Python的优势和不足有哪些
下面我们来看看Python的优势和不足处是什么?
Python的优势:
1、易于学习和使用
Python语言本身的功能数量很少,只需要相对较少的时间或精力来制作您的第一个程序。
Python语法旨在实现可读性和直接性。这种简单性使Python成为一种理想的教学语言,它可以让新手快速掌握它。
因此,开发人员花费更多时间思考他们试图解决的问题,而花更少的时间考虑语言复杂性或破译他人留下的代码。
2、非常灵活
作为一种动态类型语言,Python非常灵活。这意味着没有关于如何构建功能的硬性规则,并且您将使用不同的方法更灵活地解决问题(尽管Python哲学鼓励使用明显的方法来解决问题)。此外,Python也更容易理解错误,因此您仍然可以编译和运行程序,直到遇到问题部分。
3、广泛采用和支持
Python是一种通用语言,这意味着它可以用于构建几乎任何东西,只要使用正确的工具/库,就会很容易。
Python可以在每个主要的操作系统和平台,以及大多数的小系统上运行。许多主要的库和API支持的服务都有Python绑定或包装,允许Python自由地与这些服务进行接口或直接使用这些库。
专业上,Python非常适合后端Web开发,数据分析,人工智能和科学计算。许多开发人员还使用Python来构建生产力工具,游戏和桌面应用程序,因此有大量资源可以帮助你了解如何执行这些操作。
Python的不足处:
1、不容易维护
因为Python是一种动态类型语言,所以根据上下文,同样的事情可能很容易意味着不同的东西。随着Python应用程序变得越来越大,越来越复杂,这可能难以维护,因为错误将难以追踪和修复,因此需要经验和洞察才能知道如何设计代码或编写单元测试以简化可维护性。
2、慢
作为一种动态类型语言,Python很慢,因为它过于灵活,并且机器需要进行大量的引用以确定某些内容的定义,这会降低Python性能。
从web开发到数据科学、机器学习等等,Python在现实世界中的应用是无限的。以下一些项目将会辅助你最终将你的Python技能用到正道上。
#1:随时跟踪比特币价格
自从2017年12月价格达到将近20000美元的高点后,加密数字货币已经进入到数百万人的脑海里。它的价格在不断波动,但是很多人都认为这是一笔值得的投资。
如果你正在寻求靠这波虚拟淘金热赚上一笔,想知道什么时候该出手,那就得随时了解比特币的价格。这门教程可以教你如何利用Python技能开发出一项比特币价格通知服务。
这一项目的基础是IFTTT小程序的创建。你讲学会如何利用请求库来发送HTTP请求以及如何利用web hook将你的app与外部服务连接。
这是对加密数字货币感兴趣的Python初学者完美的初始项目。你用这一教程开发的这项服务可以延伸到其他的货币,所以别担心,以太坊也能用上。
#2:创建一个计算器
这个简单的项目是进入GUI编程的一个可靠的办法。开发后端服务是部署的重要部分之一,但是可能也需要考虑前端的事情。创建用户可轻松与之交互的应用就显得无比重要。
如果你对UX和UI感兴趣,那就看看这门教程。从中你会接触tkinter模块,这是标准的图形化用户界面软件包,通常是跟Python捆绑在一起的。
tkinter 模块是对Tcl/Tk进行封装的wrapper,是Tcl脚本语言与Tk GUI框架扩展的结合。如果你已经安装了Python,那你就应该已经有tkinter框架可用了。一个简单的调用即可唤出:
frim tkinter import
一旦你完成了这一步设置,就可以用Python继续开发你的第一个GUI计算器了。
练习运用tkinter模块,看着你的愿景慢慢在屏幕上实现。然后,一旦你练过手了,就可以拓展学习Python其他的GUI工具包了。更多信息可以看看Python GUI编程的官方文档。
#3:挖掘Twitter数据
感谢互联网以及逐步壮大的物联网,我们现在能访问的数据量之大甚至在10年前都是无法想象的。分析是任何跟数据打交道的领域的很大一部分。大家都在讨论什么?我们从他们的行为中能看到什么模式?
Twitter是获得其中一些问题答案的好地方。如果你对数据分析感兴趣,则Twitter数据挖掘项目就是利用你的Python技能回答有关周围世界的问题的好办法。
我们的Twitter情绪分析教程将用一个docker环境教你如何挖掘Twitter数据并且分析用户情绪。你将学会如何用Twitter注册一个应用,只有这样你才能访问他们的streaming API。
你会看到如何利用Tweepy来过滤想要抓取的推特,用Text Blob来计算哪些推特的情绪,用Elastic search来分析他们的内容,以及用Kibana来对结果进行可视化。当你完成这门教程后,你应该就可以深入学习其他利用Python来进行文字处理和语音识别的项目了。
#4:用Flask建立一个微博客
似乎现在人人都有一个博客,但是给自己在网上设立一个中心枢纽不算什么糟糕想法。随着Twitter和Instagram的出现,微博客尤其流行起来。在Miguel Grinberg搞的这个项目里,你会学习到如何搭建自己的微博客。
这门教程叫做“Flask Mega指南”,内容可以说不负其名。整篇教程分为23章,学习完之后你可以对Flask微型web框架拥有深刻了解。到项目最后,你应该就能得到一个功能完整的web应用了。
你不需要了解有关Flask的一切就可以开始,所以对于那些恨不得马上动手尝试web开发的人来说这是非常好的。
这个教程最近还更新了,把有助于你成为更好的web开发者的内容也纳入进来了。你可以在网上免费阅读,或者到Amazon去买一本纸质版,或者在他的在线课程中让作者手把手教你。一旦你做完项目,你就可以继续学Django,甚至开始创建更大规模的web应用了。
#5:建立一个区块链
尽管区块链起初开发出来是作为金融技术使用的,但现在却蔓延到了其他的各个行业。区块链几乎可以用到任何交易上面:从房地产到病历转移等等。
如果自己做一个的话牛就会对它的机制有更好的了解。Hacker noon的教程将辅助你从零开始实现一个区块链。到项目最后,你会对这一交易技术的机制拥有深入的了解。
做区块链需要跟HTTP和request库打交道。一旦你安装了Flask web框架,你就可以通过互联网用HTTP请求跟你的区块链进行通信了。
记住,区块链不仅仅适用于加密狂热者。一旦你自己开发了一个区块链之后,可以看看能不能找到有创意的手段在你感兴趣的领域实现这门技术。
#6:Twitter Feed控制
Bob Belderbos分享了自己是如何实现第40届PyBites Code Challenge 的,在这项编程挑战中,参与者需要创建一个web应用来更好地在Twitter上控制每日Python提示的新闻流。你可以通读他的实现以及代码了解究竟。
这次你用的不是Flask,而是微型web框架Bottle。Bottle以迅速部署应用的低依赖度解决方案著称。既然它是轻量且易用的,所以你很快就能搭建好你的应用。
你还会用Tweepy模块加载Twitter API的数据。你会将数据保存到 SQLAlchemy 数据库里面,所以你还会练习到SQL查询的编写。Fork这个代码库就可以开始了!
#7:玩PyGames
这个是给喜欢乐子的人准备的!Python可用于对各种电玩游戏、冒险游戏以及益智游戏进行编码,你可以在数天之内完成部署。经典的游戏包括猜单词、一字棋、乒乓球等等,这些都可以用你刚学会的编程技能去做。
Pygame库使得自己开发游戏变得更加容易。它包含了开发游戏所需的几乎一切。
Pygame既是免费的也是开源的。里面包含有计算机图形库和声音库,你可以利用这些可以来给你的应用增加互动功能。
你可以用这个库来开发很多的游戏。不管你选择要做哪一个,请随意把你的东西Pygame社区!
#8:选择你的冒险之旅
如果你更喜欢讲故事,用Python仍然可以开发出很酷的东西来。
这门语言极其容易编写,是创作交互式小说的完美环境。
如果你希望将你的故事提升到新的水平,可以用类似Ren’Py这样的软件引擎添加声音和图像到你的游戏里面,创作出成熟的可视化小说。(然后你可以把它放到Steam上看看大家的反应!获得对自己作品反馈的最好方式是把它发布到世界上)
#9:对机器学习说“Hell World!”
对于对人工智能感兴趣的任何人来说,机器学习是理解的关键领域。然而,想要开始学习机器是很吓人的,而且这个领域发展很快,总是在变。
幸运的时候,网上有很多资源可以帮助你试水一下再投入到数据科学的海洋之中。Jason Brownlee的这门教程是关于用Python处理机器学习非常精彩的介绍。
这些就是我了解到关于Python的一些功能和用途。关于Python我认为如果你想要成为一个编程高手这是一个较为容易学习的一种语言。
2020.12
![e626f5564007fb1ef7be542c81175731.png](https://i-blog.csdnimg.cn/blog_migrate/1d9af5cca4ddd30f1f55b94d015109b4.png)
计算机科学导论
文案 | 胡 敏
编辑 | 叶佳宁