Python的简介
- Python是一种广泛使用的解释型、高级编程、通用型编程语言。
- Python的设计哲学强调代码的可读性和简洁的语法,让开发者能够用更少的代码表达想法。不管是小型还是大型程序,该语言都试图让程序的结构清晰明了。
- Python拥有动态类型系统和垃圾回收功能,能够自动管理内存使用,并且支持多种编程范式,包括面向对象、命令式、函数式和过程式编程。其本身拥有一个巨大而广泛的标准库。
- Python 解释器本身几乎可以在所有的操作系统中运行。
Python的特性
- 多范式编程语言
- 完全支持面向对象编程和结构化编程,很多特征也支持函数式编程和面向切面编程(包括元编程和元对象)。
- 完全面向对象的语言,函数、模块、数值、字符串都是对象
- 完全支持继承、重载、派生、多重继承,有益于增强源代码的复用性。
- Python支持重载运算符,因此Python也支持泛型设计。
- Python对遵循Lisp传统的函数式编程提供了有限的支持,它提供了 filter、map、reduce函数;列表推导式、字典、集合和生成器表达式。
- 标准库中有两个模块(functools和itertools)实现了从Haskell和Standard ML取来的函数式工具。
- 跨平台
- 可扩展
- 语法简洁
- 类库丰富
Python的设计哲学
- 优美优于丑陋。明了优于隐晦。
- 简单优于复杂。复杂优于凌乱。
- 扁平优于嵌套。稀疏优于稠密。
- 可读性很重要。
为什么学Python
参考此文
总结出十大理由:
数据科学
这是许多程序员在 2020 年学习 Python 的唯一、最大的原因。我知道有许多朋友对投资银行的 Java 编程工作感到厌倦,他们正在 Udemy 学习 Python,以便能够在数据科学领域谋得一席之地,因为这一领域的工作不仅令人兴奋,而且薪水也颇高。但是,为什么 Python 会成为数据科学和机器学习的首选语言呢? 不久之前 R 语言不还是被认为是最好的机器学习编程语言吗?我认为 Python 提供的库和框架,比如用于人工智能、数据科学和机器学习上的 Pandas 、PyBrain、 NumPy ,就是其中原因之一。另一个原因就是多样性;借助 Python 的经验,你可以做出比 R 更多的事情,比如,你可以创建脚本来自动化执行某些内容、进行 Web 开发等等。机器学习
这也是程序员在 2020 年学习 Python 的另一个原因。在过去的几年里,机器学习的发展如撑霆裂月,惊魂夺魄,它正迅速改变我们周围的一切。算法的复杂性日甚一日,最好的例子就是 Google 的搜索算法,它现在可以回答你所期望的。到处都有聊天机器人可以回答你的提问,Uber 完全是由算法驱动的。如果你对机器学习感兴趣,想做一个宠物项目,或者只是想玩一玩, Python 是唯一一种能使之变得简单的主要编程语言。尽管 Java 也提供了机器学习库,但你会发现关于 Python 的内容更多,因为开发者社区更喜欢 Python,而不是数据科学和机器学习相关的其他任何内容。Web 开发
良好的传统开发是学习 Python 的另一个原因。它提供了很多优秀的库和框架,比如 Django 和 Flask ,这使得 Web 开发变得非常简单。在 PHP 中需要耗时数小时的任务,在 Python 中只需几分钟即可完成。Python 也经常用于网页抓取。互联网上一些流行的网站,如 Reddit,就是使用 Python 构建的。足够简单
这是初学者学习 Python 的最大原因。当你第一次开始编程和编码时,你肯定不想一开始就使用一种语法复杂、规则古怪的编程语言开始。Python 既可读,又简单。它也更容易设置;你不需要处理像 Java 这样的类路径问题或者像 C++ 这样的编译器问题。只需安装 Python,即可完成。在安装时,它还会要求你在 PATH 中添加 Python ,这意味着你可以在机器上的任何地方运行 Python。庞大的社区
你需要一个社区来学习新技术,在学习编程语言时,朋友是你最大的财富。你经常遇到这样的或那样的问题,这时候,你需要的是一只援助之手。多亏了 Google,你可以在几分钟内找到任何 Python 相关问题的解决方案。像 StackOverflow 这样的社区也聚集了很多 Python 专家来帮助新手。库和框架
Python 和 Java 之间的一个相似之处就是有可以用来做任何你想做的事情的开源库,框架和模块的数量众多。它使应用开发变得非常容易。想象一下,构建 Web 应用,在 Java 中不使用 Spring ,或者在 Python 中不是用 Django 和 Flask,会怎么样?有了库和框架的加持,会使你的工作变得简单,因为你只需关注业务逻辑。针对不同的需求,Python 还有许多库。Django 和 Flask 是 Web 开发中最受欢迎的两个库,而 NumPy 和 SciPy 是用于数据科学的库。事实上,Python 拥有最好的机器学习和数据科学的库,如 TensorFlow 、 Scikit-Learn 、 Keras 、 Pandas 等等。-
自动化
我第一次了解 Python 是由于我的一个脚本需求。那时候,我正处理一个通过 UDP 接收消息的应用程序,但是出现了一个问题,我们在日志中并没有看到消息。我想检查我们是否在那个机器和那个端口上接收到任何 UDP 流量,但我找不到一个方便的 UNIX 命令来做这件事。当时,我一个朋友,就坐在我旁边,那会儿正在学习 Python,他在短短 5 分钟内编写了一个实用程序,使用其中一个 Python 模块来拦截 UDP 消息。显然,他编写这样的工具所花的时间给我留下了深刻的印象,但这只是突出了 Python 在编写脚本、工具和自动化方面的强大功能。
-
多用途
我之所以喜欢 Python,还有一个原因是它像瑞士军刀一样好用。它并不仅仅局限于做一件事,比如 R ,它擅长数据科学和机器学习,但在 Web 开发 方面却毫无用处。而学习 Python 意味着,你可以用它做很多事情。你可以使用 Django 和 Flask 来创建 Web 应用,也可以使用 NumPy 、SciPy、Scikit-Learn 和 NLTK 进行数据分析。至少,你可以使用 Python 编写脚本,来自动执行许多日常任务。
工作与成长
Python 的发展日新月异,如果你刚刚开始你的编程生涯,那么学习一门正在成长的主要编程语言就非常有意义。它不仅能帮助你迅速找到工作,还能加速你的职业发展。依我浅见,对于初学者而言,除了简单之外,这应该就是学习 Python 最重要的原因了。-
薪水
Python 开发人员是收入最高的开发者之一,特别是在数据科学、机器学习和 Web 开发方面。平均而言,他们的薪水也很高,根据他们的经验、地点和领域的不同,他们的收入从 7 万美元到 15 万美元不等。