听说你死在了入门Python的路上,那是没有制定合理的学习规划

  • A+
所属分类:python网络爬虫

听说你死在了入门Python的路上,那是没有制定合理的学习规划

如果你学过其他的语言,再学 Python 将会让你的技能树大大地拓宽,有能力涉足更多的领域。

学习编程从入门到放弃的人不计其数,很大程度上是因为,产出和投入的精力完全不成正比。

而学习 Python,几行代码就可以实现一个爬虫,几个函数就可以做简单的数据分析,写一个小工具、小游戏也是分分钟的事情……这种成就感,会激发你最原始的兴趣。

那如何系统学习Python呢?一般我们会经历以下几个阶段。

01 了解 Python 编程基础

一是变量、编程规范、基础语法等,这也是能够上手编写 Python 代码的前提。

二是数据结构,字符串、列表、字典、元组这些需要非常熟练,数据类型将贯穿你整个编程的始终。

这个部分一些简单的练习就是,自己构造一个数据类型,然后去实现基本的用法。比如你自己构造一个列表,实现列表中数据的访问、更新、删除等基本操作,比如 len()、max()、min() 函数,以及 append()、count()、extend() 等方法。

函数和方法是实现数据增删改查的基本途径,如果你在实际操作中遇到数据操作的问题,可以在具体的数据类型下查找相关用法。

02 Python函数及流程控制

学习 Python 的函数和控制语句,是真正去解决问题的过程。如何实现判断和循坏,如何将固定的功能模块封装成函数,这些不仅是写出代码的必要条件,也是训练编程思维的必经之路。

函数这个部分无外乎函数的定义、函数调用以及参数传递,但是要能够娴熟地写出函数实现对应的功能,需要注意的细节很多,也需要不断地训练。

流程控制则相对要好掌握一些,条件语句和循坏语句在不同的场景下练习几遍,知道判断和循环实现的过程,基本上就没问题了。

其实到这个地方,基本的Python知识你已经掌握了,你可以自己去做一些小项目,比如猜数字、各种转换器、记账工具……

03 利用 Python 做些事情

通常在学习一段时间之后,你就会有自我怀疑的过程,貌似真的懂了,但是离做出实际的东西又很远,这些东西是否有用?

这个时候不妨了解一些第三方库,你可以做更多的事情。比如用pandas作数据处理,用matplotlib做数据可视化分析,用BeautifulSoup写爬虫,利用Flask搭建网站……这些别人搭好的轮子,你直接拿来用就可以了。当然像写爬虫和网站,你还需要了解其他方面的一些知识(比如HTTP、HTML、JS、数据库等)。

对于不同的库,内部的方法、函数你还需要去熟悉,开始的时候先掌握少部分最常用的方法,在遇到实际的问题的时候,再去查对应的更多的用法,这样会更高效。

04 深入 Python 编程

其实第三个阶段反复练习实践,你已经基本具备一些工作的技能了,比如 Python 数据分析、网络爬虫、写工具脚本……

首先你要了解Python的高级特性,如迭代器、生成器、装饰器等,了解类和面向对象的理念。深入下去,你可以去探索Python的实现原理,Python的性能优化,跳出Python语言本身,去了解计算机的交互原理,还有很长的路要走,但并不是每一个人都需要这个过程。

但这些高屋建瓴的东西,又是你在这个领域立足生根的重要条件,对于坚定走技术方向的人来说,这个过程是有必要的。这个时候你再去做应用层面的一些东西,又会有更加深刻的理解。

总结下来,学习Python,最常见的坑有这些:

1.很难找到合适且优质的学习资源,难以下手,或者随便找一些材料开始学习,极其容易从入门到放弃;

2.遇到问题不知道如何寻找解决办法,甚至连问题都描述不清楚,经常被一些细小的问题卡住,学习效率不高;

3.在理论学习中无法自拔,学习很久之后,发现还是不知道如何在实际的项目中去应用,缺乏解决问题的能力;

4.看到别人的案例觉得好像是那么回事,但是自己去写代码的时候依然很困难,无法训练编程思维。

文末小题摘要①:Python 推出新的 PyPI 网站,旧 PyPI 于 4 月 30 日关闭

PyPI 团队的成员 Sumana Harihareswara 发表博客表示,Python 已推出新的 PyPI 网站(Python 的官方第三方软件存储库),浏览器流量和 API 调用(包括"pip install")已从旧版 pypi.python.org 重定向到新网站,而旧的 PyPI 网站将于 4 月 30 日关闭。

不过现在旧的代码库在 https://legacy.pypi.org 上仍然可用。

听说你死在了入门Python的路上,那是没有制定合理的学习规划

目前,权威的 PyPI(Python Package Index) 地址是:https://pypi.org/,使用了新的 Warehouse 代码库。

https://pypi.org 测试版早于 3 月 26 日已提供,到 4 月 16 日正式推出,而旧的 PyPI 网站 https://legacy.pypi.org 则计划于 4 月 30 日关闭,pypi.python.org 则继续重定向至新网站。

有关更多详细信息,请参阅路线图:https://wiki.python.org/psf/WarehouseRoadmap

如果你仍在使用 pypi.python.org,现在开始应该迁移至使用 pypi.org,迁移指南:https://warehouse.readthedocs.io/api-reference/integration-guide/#migrating-to-the-new-pypi

文末小题摘要②:Python开源项目推荐:跨平台批量运维小工具batch_ops

batch_ops是一个用Python实现的跨平台批量运维小工具。通过它可以执行远程命令/上传下载文件。它基于yaml配置文件可灵活指定操作单位:host(s)或hostgroup(s);基于多线程可实现多主机并行;基于docopt提供详细的命令行界面。

特点:

  • 完善的命令行提示,比较优雅的输出

  • 基于yaml的配置文件,实现灵活的对主机或主机组的操作

  • 支持多线程并发执行

  • 批量执行支持忽略某个(些)节点的错误

  • 传输文件实现了类似rsync的机制

  • 跨平台,支持Linux和Windows

依赖和实现思路:

  • 包依赖:docopt(0.6.2),paramiko(2.4.0),pyyaml(3.12)

  • 将主机组以及主机(格式 name:ip:port)信息写进yaml配置文件,以便灵活选取操作目标

  • paramiko 模块实现远程命令和sftp客户端功能。

  • 要同时支持并行和串行:抽象出多线程模型,将串行视为多线程中只有一个线程的特例,解决多线程输出乱序问题

  • 文件传输功能:由于ssh的sftp子系统只支持单个文件传输,所以需要以递归思想传输目录;尽量减少无谓通信;基于两端文件的mtime和size判断是否需要传输

  • 当过程遇到错误时,发送信号给主线程,对于还未开启的线程,则不再开启;对于以开启的线程,等待其完成(这里以任何一种方式将其杀死,都不好阻止其在远程已经开使的命令)

使用说明

帮助信息:

听说你死在了入门Python的路上,那是没有制定合理的学习规划

批量执行远程命令: 以主机组为单位批量执行远程命令

听说你死在了入门Python的路上,那是没有制定合理的学习规划

上例也可以主机为单位批量执行

听说你死在了入门Python的路上,那是没有制定合理的学习规划

也可以通过--parallel参数实现并发执行

听说你死在了入门Python的路上,那是没有制定合理的学习规划

也可通过--skip-err参数忽略批量执行中的错误

听说你死在了入门Python的路上,那是没有制定合理的学习规划

关于--skip-err: 不提供此参数时 串行情况下:遇到错误便退出,不会继续在后续的主机上执行命令 并行情况下:对于还未开启的线程(一个线程对应一个主机),则不再开启;对于以开启的线程,等待其完成(或报错)

上传:

听说你死在了入门Python的路上,那是没有制定合理的学习规划

下载:

听说你死在了入门Python的路上,那是没有制定合理的学习规划

希望能对大家有所帮助。

* 免责声明:转载文章和图片均来自公开网络,版权归作者本人所有,推送文章除非无法确认,我们都会注明作者和来源。如果出处有误或侵犯到原作者权益,请与我们联系删除或授权事宜。

weinxin
我的微信公众号
爱真理,得永生!          爱在灵灵久博客,网罗天下,福利大家!

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: