栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python 核心技术概述(一)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python 核心技术概述(一)

从工程的角度深入理解 Python
  • 最重要的一点就是,从工程的角度思考学习,以实用为出发点,多练习、多阅读、多做项目,这样才能有质的提高。
  • 新手学习新的语言总是只会啃书练习,还难以上手;而有经验的同事则不同,他们能花很短的时间看完基础语法,然后找行家去了解一些重难点、易错点,最后亲自动手完成一个项目,达到融会贯通的效果。这样下来,可能几周时间就掌握得差不多了。牢牢掌握一门编程语言及其学习方法,是日后在所有领域深造的根基。
  • Python 可以运用在数据处理、Web 开发、人工智能等多个领域,它的语言简洁、开发效率高、可移植性强,并且可以和其他编程语言(比如 C++)轻松无缝衔接。
如何逐步突破,成为 Python 高手? 不同语言,需融会贯通
  • 其实,如果你在学一门语言的时候多阅读、多练习、多思考,你就会发现,不同语言都是类似的。
  • 编程语言本就是人类控制计算机的指令,语法规则等方面自然大同小异。
  • 在原有基础上,学习一门新的编程语言,其实也没有那么难,你首先要做到的是明确区分。
    • 比如,在学习 Python 的条件与循环语句时,多回忆一下其他语言的语法是怎样的。
    • 再如,遇到 Python 中的字符串相加时,你能分析出它的复杂度吗?再联想到其他语言,比如 Java 中字符串相加的复杂度,它们之间有什么相同点、又有什么区别呢?
    • 除了能够明确区分语言的不同点,我们还要能联系起来灵活运用。
      • 比如,最典型的“编程语言两问”:你了解你学过的每种编程语言的特点吗?
        • 你能根据不同的产品需求,选用合适的编程语言吗?举个例子,Python 的优点之一是特别擅长数据分析,所以广泛应用于人工智能、机器学习等领域,如机器学习中 TensorFlow 的框架,就是用 Python 写的。
        • 但是涉及到底层的矩阵运算等等,还是要依赖于 C++ 完成,因为 C++ 的速度快,运行效率更高。
      • 事实上,很多公司都是这样,服务器端开发基于 Python,但底层的基础架构依赖于 C++。
        • 这就是典型的“不同需求选用不同语言”。
        • 毕竟,你要明白,哪怕只是几十到几百毫秒的速度差距,对于公司、对于用户体验来说都是决定性的。
第一步:大厦之基,勤加练习
  • 千万不要等到把教材上所有东西都学完了才开始,因为到那时候你会发现,前面好不容易记住的一堆东西似乎又忘记了。计算机科学是一门十分讲究实战的学科,因此越早上手练习,练得越多越勤,就越好。
  • 不过,到底什么叫做必要的基础呢?以 Python 为例,如果你能够理解变量间的赋值、基本的数据类型、条件与循环语句、函数的用法,那么你就达到了第一步的底线标准,应该开始在课下多多练习了。
  • 在做这个小项目的过程中,你可能会遇到不少问题。我的建议是,遇到不懂的问题时,多去 Stack Overflow 上查询,这样你还能阅读别人优秀的代码,借鉴别人的思路,对于你的学习肯定大有帮助。
第二步:代码规范,必不可少
  • 诚然,学习编程讲究快和高效。但是,与此同时,请一定不要忽略每一种语言必要的编程规范。
    • 在你自己刚开始写代码练习时,你可以不写单元测试。
    • 但总不能几百行的代码却没有一个函数,而是从头顺序写到尾吧?
    • 你可以省略一些可有可无的注释,但总不能把很多行代码全部并到一行吧?
  • 变量和函数的命名虽有一定的随意性,但一定要有意义。
第三步:开发经验,质的突破
  • 想要真正熟练地掌握 Python 或者是任何一门其他的编程语言,拥有大中型产品的开发经验是必不可少的。因为实战经验才能让你站得更高,望得更远。
  • 比如我们每天都在用搜索引擎,但你了解一个搜索引擎的服务器端实现吗?
    • 这是一个典型的面向对象设计。
    • 你需要定义一系列相关的类和函数,需要从产品需求、代码复杂度、效率以及可读性等多个方面考虑。
    • 同时,上线后还要进行各种优化等等。
Jupyter Notebook 为什么是现代 Python 的必学技术?
  • Jupyter 已经成为一个几乎支持所有语言,能够把软件代码、计算输出、解释文档、多媒体资源整合在一起的多功能科学运算平台。
  • Jupyter 的优点
    • 整合所有的资源
      • 在真正的软件开发中,上下文切换占用了大量的时间。
      • 举个例子你就很好理解了,比如你需要切换窗口去看一些文档,再切换窗口去用另一个工具画图等等。这些都是影响生产效率的因素。
      • Jupyter 通过把所有和软件编写有关的资源全部放在一个地方,解决了这个问题。
      • 当你打开一个 Jupyter Notebook 时,就已经可以看到相应的文档、图表、视频和相应的代码。
      • 这样,你就不需要切换窗口去找资料,只要看一个文件,就可以获得项目的所有信息。
    • 交互性编程体验
      • 在机器学习和数学统计领域,Python 编程的实验性特别强,经常出现的情况是,一小块代码需要重写 100 遍,比如为了尝试 100 种不同的方法,但别的代码都不想动。
      • Jupyter Notebook 引进了 Cell 的概念,每次实验可以只跑一小个 Cell 里的代码。
      • 并且,所见即所得,在代码下面立刻就可以看到结果。
    • 零成本重现结果
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/357474.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号