零基础Python学习之路

目录CONTENTS

第1章 走进Python学习之路                                                                                                                                                                                                     

1.1 Python编程语言介绍

  1.1.1 Python的历史发展 

      1.1.2 Python2和Python3

1.2 为什么学习Python

  1.2.1 Python的语言特点

  1.2.2 如何学习、学好Python问题

1.3 Python官方文档

1.4 常用软件

1.5 Python开发社区

一:走进Python学习之路                                                                                                                                                                                                        

  1.1 Python编程语言介绍                                                                                 

  Python是一种广泛使用的高级编程语言,相比于C++或Java、PhP、JavaScript语言,Python能够让开发者用更少的代码表达思想、想法。作为一种解释性的语言,Python都能让程序的结构更加清晰明了,因为Python强调代码的可读性和简洁的语法。相比多种语言编程的可分为编译型、解释型、混合型

编译型
优点:编译器一般会有预编译的过程对代码进行优化。因为编译只做一次,运行时不需要编译,所以编译型语言的程序执行效率高。可以脱离语言环境独立运行。
缺点:编译之后如果需要修改就需要整个模块重新编译。编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据运行的操作系统环境编译不同的可执行文件。

解释型
优点:有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护。

缺点:每次运行的时候都要解释一遍,性能上不如编译型语言。

Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易懂,初学者学Python,不但入门容易,而且将来深入下去,可以编写那些非常非常复杂的程序。开发效率非常高,Python有非常强大的第三方库,基本上你想通过计算机实现任何功能,Python官方库里都有相应的模块进行支持,直接下载调用后,在基础库的基础上再进行开发,大大降低开发周期

1.1.1 Python的历史发展                                                                                                                                                                                                       

  1989 年的圣诞节期间,吉多·范罗苏姆(Guido van Rossum)俗称“龟叔”为了在阿姆斯特丹打发时间,决定开发一个新的脚本 解释语言,为此就有了Python这门语言的问世,Python的创始人。

  而哪个年代流行的主语言是Pascal、C、C++、Fortran等编程语言,后来社会在进步,人类科技在发展,像Java、PhP、JavaScript语言陆续出现,同登历史舞台。而为了增进效率,语言也迫使程序员像计算机一样思考,以便能写出符合计算机的程序,吉多知道如何使用C语言写出自己想要的功能,但是整个编写过程很烦琐,需要耗费大量的时和精力,他对这种编程方式 感到苦恼,哪时候 Unix的管理员用Shell去编写一些简单的脚本 以进行一些重复的系统维护工作,比如数据备份、用户管理等,Shell可以只使用几行就实现许多C语言上下百行的程序,然而Shell只是调用命令,并不能调用计算机的所有功能。

  吉多希望有一种编程语言能实现像C语言哪样 全面调用计算机的功能接口,同时又可以像Shell哪样轻松编程。当时他在荷兰国家数学与计算机科学研究中心工作,并参与ABC语言的开发,开发目的是教导哪些程序员学习如何开始写程序,也是希望有一门语言变得容易阅读、使用、学习。。。。让更多的人能够学到一门好的技术,学到一门容易入手,好学,易学习的语言程序------------》由些Python解释语言就诞生了🇦🇱😇       

  也因此有了吉多对编程的热爱、不放弃,一直努力下,最终决心在Python中有了非好常好的效果,才有了1991年,Python的第一个版本出世。

  1991年,Python的第一个版本在吉多的Mac机上诞生了,它是有C语言实现的并且能够调C语言的库文件,完美结合了C语言和Shell的特点

      Python 1.0 - January 1994 增加了 lambdamapfilter and reduce.

     2000年10月16日发布了Python2.0版本,实现了完整的垃圾回收功能,并且支持Unicode(统一编码机制)。同时整个开发过程更加的透明,社区对开发进度的影响逐渐扩大

  2008年12月3日发布了Python3.0版本,此版本不完全兼容之前的Python源代码(简单的来说:就是用Python2.0开发的源代码不一定能在Python3.0能执行)不过:很多新特性后来补移植到了旧的           Python2.6和Python2.7当中去啦! 

      Python 2.0 - October 16, 2000,加入了内存回收机制,构成了现在Python语言框架的基础

  • Granddaddy of Python web frameworks, Zope 1 was released in 1999
  • Python 1.0 - January 1994 增加了 lambdamapfilter and reduce.
  • Python 2.0 - October 16, 2000,加入了内存回收机制,构成了现在Python语言框架的基础
  • Python 2.4 - November 30, 2004, 同年目前最流行的WEB框架Django 诞生
  • Python 2.5 - September 19, 2006
  • Python 2.6 - October 1, 2008
  • Python 2.7 - July 3, 2010
  • In November 2014, it was announced that Python 2.7 would be supported until 2020, and reaffirmed that there would be no 2.8 release as users were expected to move to Python 3.4+ as soon as possible
  • Python 3.0 - December 3, 2008
  • Python 3.1 - June 27, 2009
  • Python 3.2 - February 20, 2011
  • Python 3.3 - September 29, 2012
  • Python 3.4 - March 16, 2014
  • Python 3.5 - September 13, 2015 

直到今日Python3.11都在23年5月底出炉,现在直接附上最新的 TIOBE 排名                                                                                                

TIOBE Index for June 2023

June Headline: Will Python remain number 1?

TIOBE Index - TIOBE

目前Python主要应用领域:

  • 云计算: 云计算最火的语言, 典型应用OpenStack
  • WEB开发: 众多优秀的WEB框架,众多大型网站均为Python开发,Youtube, Dropbox, 豆瓣。。。, 典型WEB框架有Django
  • 科学运算、人工智能: 典型库NumPy, SciPy, Matplotlib, Enthought librarys,pandas
  • 系统运维: 运维人员必备语言
  • 金融:量化交易,金融分析,在金融工程领域,Python不但在用,且用的最多,而且重要性逐年提高。原因:作为动态语言的Python,语言结构清晰简单,库丰富,成熟稳定,科学计算和统计分析都很牛逼,生产效率远远高于c,c++,java,尤其擅长策略回测
  • 图形GUI: PyQT, WxPython,TkInter

Python在一些公司的应用: 

  • 谷歌:Google App Engine 、code.google.com 、Google earth 、谷歌爬虫、Google广告等项目都在大量使用Python开发
  • CIA: 美国中情局网站就是用Python开发的
  • NASA: 美国航天局(NASA)大量使用Python进行数据分析和运算
  • YouTube:世界上最大的视频网站YouTube就是用Python开发的
  • Dropbox:美国最大的在线云存储网站,全部用Python实现,每天网站处理10亿个文件的上传和下载
  • Instagram:美国最大的图片分享社交网站,每天超过3千万张照片被分享,全部用python开发
  • Facebook:大量的基础库均通过Python实现的
  • Redhat: 世界上最流行的Linux发行版本中的yum包管理工具就是用python开发的
  • 豆瓣: 公司几乎所有的业务均是通过Python开发的
  • 知乎: 国内最大的问答社区,通过Python开发(国外Quora)
  • 春雨医生:国内知名的在线医疗网站是用Python开发的
  • 除上面之外,还有搜狐、金山、腾讯、盛大、网易、百度、阿里、淘宝 、土豆、新浪、果壳等公司都在使用Python完成各种各样的任务。 

1.1.2 Python2和Python3

  对于要学Python的朋友、老铁们在打开Python官方网站(Welcome to Python.org)下载Python时,总会看到官方网站可提供你两个不同版本的下载:Python2.7和Python3.X以上的版本,而现在已经到了Python3.11.X啦,发展的非常的快!哪么有个问题就来啦!官方为什么要提供两下载的版本呢?它们有什么样的区别嘛????????

  Python3.0发布于2008年,Python2最后的一个版本2.7发布于2010年,当时宣布2.0最后的一个版本不会再有新的功能加入,也不再对其进行维护,因此:python2.7就是了python2的最后一个主体版本啦。目前3.X版本在正处于积极的发展阶段,并且已经出现了超过10年的3.7版本,现在23年6月python3.12都快出来了,这意味着所有最新的、最前沿的改进只会在Python3kh出现更新。Python3解决了Python2中的一些历史遗留问题, 例如更好的Unicode编码支持。此外,语言的部分核心也做了调整,以便新手更容易学习, 并且与其他编程语言更加一致。由于Python3解决了这些疑难杂症,所以Python3并不能完全兼容Python 2编写的程序。

  然而多年来,由于Python的广泛应用,Python 2的生态系统已经积累了大量高质量的软件。某些软件(特别是公司内部的软件) 由于长时间没有更新,所以并不能在Python 3中良好地运行。那么我们该用哪个版本呢?

  答:官方已经宣布Python2的最后一个主要版本2.7将会在2020年结束支持,这意味着2020年后无论Python2发现多大的漏洞,官方都不会进行维护。所幸的是, 大部分常见的应用程序或第三方库已经完美兼容Python3了, 而且官方提供了一系列的工具和文档来帮助开发者从Python2迁移到Python3,所以我们并不需要担心自己写的程序无法运行。如果是新的程序,那么我们应当优先考虑使用Python3,但是我们应当尽早把现有的Python2程序迁移到Python3,所以:我的结果是推荐使用最新近期相近的Python3.X版本,与日俱进嘛?

1.2 为什么学习Python

1.2.1 Python语言的特点
  Python是一门动态类型的解释型语言。 作为解释型语言,Python不需要像Pascal或者C++那样在运行之前先通过编译器进行漫长的编译过程生成二进制文件之后才能运行, Python程序只需要在运行的操作系统上安装Python解释器就可以运行。 在运行期间,解释器将代码逐行解释为机器码之后再运行。作为动态类型的编程语言, Python拥有动态类型系统, 相对于C++和Java等静态类型语言,Python在运行时才进行类型检查, 并且随时可以改变变量的类型,走进Python学习之路会在学习之后体会到动态类型系统的优点。 Python还有成熟的垃圾回收功能, 能够自动管理内存使用,并且支持多种编程范式,包括面向对象、命令式、 函数式和过程式编程, 其本身拥有一个巨大而广泛的标
准库。
  Python解释器本身几乎可以在所有的操作系统中运行。 Python的正式解释器CPython是用C语言编写的,是一个由社群驱动的自由软件, 目前由Python软件基金会管理。
虽然Python被归类为脚本语言, 但实际上许多大规模软件开发项目和公司例如谷歌、 土豆网、今日头条、 豆瓣以及知乎等网站都广泛地使用Python作为其开发语言。 与其他如Shell Script、VBSeript等只能处理简单任务的脚本语言不同, Python几乎能处理所有需要计算机处理的任务。Python本身被设计为可扩展的, 并非所有的特性和功能都集成到语言核心之中,因此:有很多人把Python当作一种“胶水”使用,将其它语言编程编写的程序进行集成或封装,然后再使用Python调用相应的模块,这样充分体现了Python开发快的优势。另有一点要提醒下:Python并没有像汇编语言C、C++和Java语言那样的高效运行,但是大部分的情况下Pyhton的执行效率还是完全可以的,能完全满足需求。

 哪有人问Python到底是什么 

  其实Python和Java/C#一样,也是一门基于虚拟机的语言是以.Py结尾的Python文件,我们先来从表面上简单地了解一下Python程序的运行过程吧。当我们在命令行中输入python hello.py时,其实是激活了Python的“解释器”,告诉“解释器”:你要开始工作了。可是在“解释”之前,其实执行的第一项工作和Java一样,是编译。只是我们在用Eclipse之类的IDE时,将这两部给融合成了一部而已。其实Python也一样,当我们执行python hello.py时,他也一样执行了这么一个过程,所以我们应该这样来描述Python,Python是一门先编译后解释的语言。

  简述Python的运行过程

  在说这个问题之前,我们先来说两个概念,PyCodeObject和pyc文件。我们在硬盘上看到的pyc自然不必多说,而其实PyCodeObject则是Python编译器真正编译成的结果。我们先简单知道就可以了,继续向下看。当python程序运行时,编译的结果则是保存在位于内存中的PyCodeObject中,当Python程序运行结束时,Python解释器则将PyCodeObject写回到pyc文件中。当python程序第二次运行时,首先程序会在硬盘中寻找pyc文件,如果找到,则直接载入,否则就重复上面的过程。所以我们应该这样来定位PyCodeObject和pyc文件,我们说pyc文件其实是PyCodeObject的一种持久化保存方式。

  1.2.2 没Python编程基础能学嘛--》全民学Python 

  在没有编程基础的情况下,从头开始学习任何 一门编程语言都会比较困难, 自己也写不出代码,结果中途放弃。如何更好地学习Python。语法就类似这门编程语言的词汇学习编程语言,一开始最重要的就是学习这门语言的语法,自己动手写每一个简短表。

  学习Python的过程中同样需要不断地学习Python语法,查阅相关代码,一个例子都是可以实际运行的的例子。本书每一个知识点之后都有“动手写”的例子部分,每动手运行每个例子有助于初学者更好地理解Python。在达到一定熟练度之后,后期及下面有大量的代码示例,前期可以照着代码示例进行拷贝,就要尝试自己编写代码。 不用担心自己写错代码会怎么办, 或者不知道该如何发现错误代码由于IDE (Integrated Development Environment,集成开发环境) 有代码报错功能,自己写的代码格式有问题时,会有明显的错误提示。在经过不断地重复练习,对很多语法有了一定的认识之后,我们就要开始举一反三。比如在学习文件操作这一章节时,书中会讲到用Python写文件, 这里就可以举一反三:Python有几种写文件的方式?这几种写文件方式的执行结果是什么? 如果两个Python程序同时向一个文件写内容会怎么样学习新知识的时候,要不断地提出问题, 然后通过编写代码进行测试,最终才会找到答案,这样你的知识覆盖面也才会更加全面。

  在熟练编写简单的代码之后, 就要开始学习如何用它来创建小程序。此时,我们将从小项目开始,继续加深对Python语法的学习。 开发各种小型项目、小的场景, 是一种很好的学习方式,编写一个小项目,就要用到各种以前学到的知识。继续以文件章节为例子,比如我们想做一个简易的日志系统,就会用到Python文件函数、 字符串处理函数以及时间相关函数,可以把我们所学到的知识关联起来。当然会提供很多小项目给大家练手, 小项目还有很一个小小的项目就多优点,比如易于调试,而且可以作为自己的开发例子, 我们可以从中获得小小的成就感。找一些正在学习Python的人或者有经验的Python开发者一起合作编写代码,在合作过程中,你会学到一些你之前没有注意到的知识点。

  注意:还要有一点就是需要懂点,学点英语,在网络上大部分有有关Python相关的文档都有中文,网站上也可以通过翻译进行见面整体进行英转中的工具,但是还是有很多时候是以英语作为首发的语言的。

1.3 Python官方文档

  • Python官方网站有不少新手教程以及Python语言的全部内容,学习开发过程中有任何疑问都可在查阅官方最新文档:3.11.4 Documentation

  • Python官方文档的语言是英语,外国人写的嘛,也下如我之前要大家注意学点英语,也是学好Python编程语言的方式,不过:现在也有不少热心的网友们对官方文档进行了中文翻译。

1.4 常用软件

  1. 开发工具(IDLE或编辑器)

  Python开发工具有很多,IDE的功能比较强大,程序员或工程师通过IDE进行代码开发时,一般IDE都会提供代码提示、文件和目录管理、代码搜索和替换、 查找函数等功能。文本编辑器功能比较简单,但是有的编辑器例如Microsoft VisualStudio Code和Sublime等也可以通过安装插件来达到IDE所
提供的大部分功能。
  (1) Microsoft Visual Studio Code. 是一个由微软开发的,同时支持Windows、 Linux和Mac OS操作系统并且开放源代码的文本编辑器,它支持调试, 并内置了Git版本控制功能,同时也具有开发环境功能,例如代码补全、代码片段、代码重构等。 

  (2)PyCharm是由JetBrains公司出品的IDE工具,集成 了一些系列开发功能,如Python包管理、虚拟环境管理、框架整合和Git等。 PyCharm大大节省了程序开发时间,运行更快速, 代码可以
自动更新格式,支持多个操作系统。 PyCharm有免费的开源社区版和收费版两个版本, 免费的开社区版功能要比收费版功能少一些。  

  2.代码管理工具

  一个网站通常由多个开发人员共同完成, 代码管理工具可以记录一个项目从开始到结束的整个过程,追踪项目中所有内容的变化情况, 如增加了什么内容、删除了什么内容、修改了什么内容等等。它还可以管理网站的版本, 可以清楚地知道不同版本之间的异同点, 如版本2.0相较于版本1.0多了什么内容和功能等。 开发人员可以通过代码管理工具进行权限控制, 防止代码混乱,提高安全性,避免一些不必要的损失和麻烦。
       (1)SVN(Subvesion), 是一个开源的集中式版本控制系统, 管理随时间改变的数据,所有数据集中存放在中夹仓库(Repository)。Rapa就好比一个普通的文件服务器,不过它会记
每一次文件的变动,这样你就可以把代码文件恢复到旧的版本,或是浏览代码文件的变动历史。

  (2)Gi,是一个开源的分布式版本控制系统,和SVN功能类似,但Ci的每台电脑都相当于-个服务器,代码是最新的,比较灵活,可以有效、高速地处理项目版本管理。全球最大的代码托管网站GitHub,采用的也是Git技术。

  3.其它工具

  (1)JIRA,是Atlassian2公司出品的项目与事务跟踪工具,可以使用此工具进行网站bug管理缺陷跟踪、任务跟踪和敏捷管理等。
  (2)Redmine,是用Ruby编程语言开发的一套跨平台项目管理系统,通过项目(Project)的形式把成员、任务(问题)、文档、讨论以及各种形式的资源组织在一起,用大家参与更新任务、文档等内容的方式来推动项目的进度,同时系统利用时间线索和各种动态的报表形式来自动向成员汇报项目进度,并提供Wki、新闻台等,还可以集成其他版本管理系统和ug跟踪系统。
  (3)XMind,一款实用的思维导图软件,可以使用KMindi画产品架构图、项目流程图、功能分解图等,简单易用、美观、功能强大,拥有高效的可视化思维模式,具备可扩展、跨平台、稳定的性能,真正帮助用户提高生产率,促进有效的沟通及协作。
  (4)TeamCola,由国内团队开发的时间管理工具,能较好地解决时间问题,而其管理的时间颗粒度为半小时,也不会过多增加管理成本。

1.5 Python开发社区

国外比较知名的社区有:    

  1.  GitHub=====>https://www.github.com
  2. Python Forum=====>https://python-forum.io
  3. Pyhton油件组======>Mailing Lists | Python.org

国内比较知名的Python开发社区有:

  1. CSND======>https://www.csdn.net
  2. 开源中国=====>https://www.oschina.net
  3. V2EX=======>https://www.v2ex.com

走进零基础Python学习之路,本章节就分享到这里,喜欢Python的老铁们,欢迎加入让你我一起用代码改变世界https://www.cnblogs.com/MarchStudy230611/访问

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值