30天Python入门到进阶——第1天:简介

30天Python入门到进阶——第1天:简介

前言

前段时间写了一个系列《超简单的python教程系列》,我回顾了一下,那里面的内容讲的会比较深入一点,省略了很多细节,只是对某些主题进行了详细讲解,这样的话,对于一些刚入门或者想入门的coder并不友好,所以,我打算针对这部分用户重新编写一个系列《30天Python入门到进阶》,希望可以为刚跨入这个行业或者准备选择这个行业的人员提供更好的帮助,我相信探索 Python 在数据科学、机器学习等领域得到广泛认可的新可能性会非常好。希望大家在学习过程中是轻松、愉快的!

我决定将学习路线图分为4周,每周专门学习语言的某些特定领域。作为一名开发人员,我知道在这么短的时间内掌握一门语言是不可能的,但每天有意识地练习同样的时间就足以开始构建有趣的项目并奠定基础。

路线图

  • 第 1 周 - Python 基础知识、基本语法、设置开发环境、基本工作原理、练习一些基本编码并记录过程。
  • 第 2 周 - 编程范式 → 面向对象和函数式编程模式。
  • 第 3 周 - Python 装饰器、错误处理、模块、生成器、调试。
  • 第 4 周 - 文件 I/O、正则表达式、测试、使用 Python 编写脚本。
  • 附加内容(基于时间可用性):数据抓取、服务器设置、机器学习基础知识。

记录你的日常进步也将帮助你建立一个参考期刊以供将来参考。我希望可以作为任何想要学习语言的人的有用资源。

Python简介

Python,读作​​['paɪθɑn]​​,翻译成汉语是蟒蛇的意思,并且Python的logo也是两条缠绕在一起的蟒蛇的样子,然而Python语言和蟒蛇实际上并没有一毛钱关系。

30天Python入门到进阶——第1天:简介

Python的口号是:“人生苦短,我用Python!”。这条口号已经被Python业界广泛使用,快成了广告词一类的存在了。

30天Python入门到进阶——第1天:简介

Python语言是由荷兰程序员Guido van Rossum,江湖人称“龟叔”,独立开发完成初版的。“龟叔”曾供职于google,现任职于dropbox 。1989年圣诞节期间,在阿姆斯特丹,为了打发圣诞节的无趣,决心开发一个新的脚本解释语言,作为ABC语言的一种继承,然后他就这么做了,并实现了(大神的能力)。之所以选中Python作为该编程语言的名字,是因为他是一个叫Monty Python喜剧团体的爱好者,其本意并不是想选条蟒蛇。

30天Python入门到进阶——第1天:简介

Python第一个公开发行版发行于1991年,所以这年被当作Python的诞生年。

Python 源代码遵循 GPL(GNU General Public License)协议,这是一个开源的协议,也就是说你可以免费使用和传播它,而不用担心版权的问题。

目前Python是由一个核心开发团队在维护,龟叔属于太上皇职位,仍然占据着至关重要的作用,指导其进展。

Python语言的特点

1. 简单易学、明确优雅、开发速度快

  • 简单易学:与C和Java比,Python的学习成本和难度曲线不是低一点,更适合新手入门,自底向上的技术攀爬路线。先订个小目标爬个小山,然后再往更高的山峰前进。而不像C和JAVA光语言学习本身,对于很多人来说就像珠穆朗玛峰一样高不可攀。
  • 明确优雅:Python的语法非常简洁,代码量少,非常容易编写,代码的测试、重构、维护等都非常容易。一个小小的脚本,用C可能需要1000行,用JAVA可能几百行,但是用Python往往只需要几十行!
  • 开发速度快:当前互联网企业的生命线是什么?产品开发速度!如果你的开发速度不够快,在你的产品推出之前别人家的产品已经上线了,你也就没有生存空间了,这里的真实例子数不胜数。那么,Python的开发速度说第二没人敢称第一!(不欢迎辩论_)。

2. 跨平台、可移植、可扩展、交互式、解释型、面向对象的动态语言

  • 跨平台:Python支持Windows、Linux和MAC os等主流操作系统。
  • 可移植:代码通常不需要多少改动就能移植到别的平台上使用。
  • 可扩展:Python语言本身由C语言编写而成的,你完全可以在Python中嵌入C,从而提高代码的运行速度和效率。你也可以使用C语言重写Python的任何模块,从根本上改写Python,PyPy就是这么干的。
  • 交互式:Python提供很好的人机交互界面,比如IDLE和IPython。可以从终端输入执行代码并获得结果,互动的测试和调试代码片断。
  • 解释型:Python语言在执行过程中由解释器逐行分析,逐行运行并输出结果。
  • 面向对象:Python语言具备所有的面向对象特性和功能,支持基于类的程序开发。
  • 动态语言:在运行时可以改变其结构。例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。动态语言非常具有活力。

3. “内置电池”,大量的标准库和第三方库

Python为我们提供了非常完善的基础库,覆盖了系统、网络、文件、GUI、数据库、文本处理等方方面面,这些是随同解释器被默认安装的,各平台通用,你无需安装第三方支持就可以完成大多数工作,这一特点被形象地称作“内置电池(batteries included)”。

在程序员界,有一句话叫做“不要重复造轮子”。什么意思呢?就是说不要做重复的开发工作,如果对某个问题已经有开源的解决方案或者说第三方库,就不要自己去开发,直接用别人的就好。不要过分迷信自己的代码能力,要知道,能作为标准库被Python内置,必然在可靠性和算法效率上达到了目前最高水平,能被广泛使用的第三方库,必然也是经受了大量的应用考验。除非公司要求,不要自己去开发,请使用现成的库。那些造轮子的事情,就交给世界最顶尖的那一波程序员去干吧,没有极致的思维和数学能力,想创造好用的轮子是很难的。

4. 社区活跃,贡献者多,互帮互助

技术社区的存在就相当于程序员手中的指南针,没有指南针,很多时候,碰到了问题,就像无头的苍蝇只能到处乱飞,最终在茫茫的海洋中转晕致死。技术社区可以给我们对语言的学习和使用提供巨大的帮助,无论是前期的学习,还是日后的工作,只要有问题,技术社区的大牛都可以帮我们解决,有这些助力,可以帮我们更好地了解、学习和使用一门语言。技术社区同时还推动Python语言的发展方向,功能需求,促使公司企业更多的使用Python语言,招聘Python程序员。

然而、然而,上面说的是国外。在国内,好像没有比较成熟,影响范围广的Python技术社区,还是说我见识浅薄不知道而已?据本人分析,有历史原因和Python流行过程中形成的习惯等因素,国外Python高手都喜欢用邮件列表、wiki等方式进行交流,而国内喜欢的论坛、bbs等没有形成规模,所以造成现在的状况。

因此,同学们,学好英语,去和世界范围的程序员交流吧!

5. 开源语言,发展动力巨大

Python是基于C语言编写的,并且使用GPL开源协议,你可以免费获取它的源代码,进行学习、研究甚至改进。众人拾柴火焰高,有更多的人参与Python的开发,促使它更好的发展,被更多的应用,形成良性循环。Python为什么会越来越火就是因为它的开放性,自由性,聚起了人气,形成了社区,有很多人在其中做贡献,用的人越来越多,自然就提高了市场占有率,企业、公司、厂家就不得不使用Python,提供的Python程序员岗位就越来越多,这就是开源的力量。

这里附带跟大家说一个代码封闭的问题。Python写的源代码通常是不加密的,如果要发布你的Python程序,实际上就是发布源代码,这一点跟C语言不同,C语言不用发布源代码,只需要把编译后的机器码(也就是你在Windows上常见的xxx.exe文件)发布出去。要从机器码反推出C代码基本是不可能的,所以,凡是编译型的语言,都没有这个问题,而解释型的语言,则必须把源码发布出去。如果你不想让别人看到或抄袭你写的python代码怎么办?使用类似py2exe的包装工具,将python源码转换成一个类似于exe可执行文件的形式,但这个也不是绝对保险,只是增加了反编译的门槛和难度,对于有经验的人而言,一样可以获得你的源代码。

你可能要问,我要通过写代码编软件卖出去挣钱怎么办?少年!目前的互联网时代,靠卖软件授权的商业模式越来越少了,靠网站服务和移动应用卖服务的模式越来越多了,这种模式不需要把源码给别人。再说了,现在如火如荼的开源运动和互联网自由开放的精神是一致的,互联网上有无数非常优秀的像Linux生态圈一样的开源项目,我们千万不要高估自己写的代码真的有非常大的“商业价值”。在Python的世界,开源是王道,不要纠结你的代码被抄袭模仿,而是尽量提高自己的水平和能力,这才是立身之本。

Python的工作原理

Python 是一种高级解释型编程语言。
这意味着python代码需要由另一个称为解释器的软件程序翻译(解释),该程序逐行执行代码并将其转换为字节码(非常接近机器可读的代码)。

该字节码由 Python 虚拟机运行(在我们安装 python 时安装),然后转换为计算机可以处理和执行必要操作的机器可读二进制代码。

在安装 Python 时,我们安装的是 Python 解释器和虚拟机。
python解释器有不同的变体:

  • CPython - 官方安装自带,用C语言编写
  • Jython
  • PyPy
  • IronPython

每个实现都有自己的特性和权衡。

版本

有两个主要版本 v2 和 v3。2008 年,该语言引入了几项重大改进,这些改进在不考虑向后兼容性的情况下引入了一些重大更改。官方文档现在推荐使用 v3,并且对 v2 的支持将在 2020 年之后停止。

第一个初学者程序

一开始,为了让事情变得非常简单,我想先玩一些基本的hello world类型代码。
我使用了pycharm开始编写一些 Python 代码并与 JavaScript 进行语法比较。

name = input('What is your name?') #promts user input in console and store in a variable
print('Welcome to the world of Python ' + name) # prints to console

将其与 JavaScript 进行比较

const name = prompt('What is your name?');
console.log('Welcome to the world of JavaScript ' + name);
发表评论

相关文章