零基础Python从入门到精通
作者简介
零基础,一起学! 零壹快学是一个集教育、培训、交流于一体的计算机学习融媒体平台,覆盖Web、APP和微信小程序等场景,为广大IT学习者提供计算机各学科的教学资源、培训课程、测评系统等。通过人工智能手段,模拟真实课堂环境,力求打造成为一个全面、**、高效的**计算机在线教育平台。目前,平台已开发了包括计算机编程、云计算、区块链等在内的多门课程,提供计算机等级考试在线题库系统,将陆续开发计算机技术与软件专业技术资格(水平)考试、CCIE等在线题库系统,同时拥有一支由一线互联网公司工程师、知名高校教师组成的专家团队,精心为广大IT学习者提供优质的学习资源、课程和服务。
内容简介
第1章 走进Python 1.2 学好Python的建议 1.2.1 Python语言的特点 Python是一门动态类型的解释型语言。作为解释型语言,Python不需要像Pascal或者C++那样在运行之前先通过编译器进行漫长的编译过程生成二进制文件之后才能运行,Python程序只需要在运行的操作系统上安装Python解释器就可以运行。在运行期间,解释器将代码逐行解释为机器码之后再运行。作为动态类型的编程语言,Python拥有动态类型系统,相对于C++和Java等静态类型语言,Python在运行时才进行类型检查,并且随时可以改变变量的类型。读者会在深入学习本书之后体会到动态类型系统的优点。Python还有成熟的垃圾回收功能,能够自动管理内存使用,并且支持多种编程范式,包括面向对象、命令式、函数式和过程式编程,其本身拥有一个巨大而广泛的标准库。 Python解释器本身几乎可以在所有的操作系统中运行。Python的正式解释器CPython是用C语言编写的,是一个由社群驱动的自由软件,目前由Python软件基金会管理。 虽然Python被归类为脚本语言,但实际上许多大规模软件开发项目和公司例如谷歌、土豆 网、**头条、豆瓣以及知乎等网站都广泛地使用Python作为其开发语言。与其他如Shell Script、VBScript等只能处理简单任务的脚本语言不同,Python几乎能处理所有需要计算机处理的任务。 Python本身被设计为可扩展的,并非所有的特性和功能都集成到语言核心之中。Python提供了丰富的API(Application Programming Interface,应用程序编程接口)和工具,以便程序员能够轻松地使用C、C++、Cython来编写扩展模块。Python编译器本身也可以被集成到其他需要脚本语言的程序内。因此,有很多人把Python当作一种“胶水语言”使用,将其他语言编写的程序进行集成和封装。许多公司会在性能要求极高的部分使用C或者C++开发,然后使用Python调用相应的模块,这充分体现了Python开发快的优势。当然,其中的缺点也十分明显,Python并没有像汇编语言、C、C++和Java语言那样运行高效,但是大部分情况下Python的执行效率能**满足需求。 1.2.2 如何学习Python? 在没有编程基础的情况下,从头开始学习任何一门编程语言都会比较困难,经常会不知道从哪里开始学起,即使看懂了,自己也写不出代码,结果中途放弃。通过本节,希望大家可以知道如何*好地学习Python。 学习编程语言,一开始*重要的就是学习这门语言的语法,语法就类似这门编程语言的词汇表。学习Python的过程中同样需要不断地学习Python语法,查阅相关代码,自己动手写每一个简短的例子。本书每一个知识点之后都有“动手写”的例子部分,每一个例子都是可以实际运行的,动手运行每个例子有助于初学者*好地理解Python。 书中有大量的代码示例,前期可以照着书中的代码示例进行拷贝,在达到一定熟练度之后,就要尝试自己编写代码。不用担心自己写错代码会怎么办,或者不知道该如何发现错误代码——由于IDE(Integrated Development Environment,集成开发环境)有代码报错功能,自己写的代码格式有问题时,会有明显的错误提示。 在经过不断地重复练习,对很多语法有了一定的认识之后,我们就要开始举一反三。比如在学习文件操作这一章节时,书中会讲到用Python写文件,这里就可以举一反三:Python有几种写文件的方式?这几种写文件方式的执行结果是什么?如果两个Python程序同时向一个文件写内容会怎么样……学习新知识的时候,要不断地提出问题,然后通过编写代码进行测试,*终才会找到答案,这样你的知识覆盖面也才会*加全面。 在熟练编写简单的代码之后,就要开始学习如何使用它来创建小程序。此时,我们将从小项目开始,继续加深对Python语法的学习。开发各种小型项目、小的场景,是一种很好的学习方式,编写一个小项目,就要用到各种以前学到的知识。继续以文件章节为例子,比如我们想做一个简易的日志系统,就会用到Python文件函数、字符串处理函数以及时间相关函数,一个小小的项目就可以把我们所学到的知识关联起来。当然,本书也会提供很多小项目给大家练手,小项目还有很多优点,比如易于调试,而且可以作为自己的开发例子,我们可以从中获得小小的成就感。 找一些正在学习Python的人或者有经验的Python开发者一起合作编写代码,在合作过程中,你会学到一些你之前没有注意到的知识点。逛Python技术社区,查看大家提交的各种Python问题,并尝试去回答,这点**重要。那些问题都是大家在学习或工作中遇到的真实问题,尝试去解决这些问题,会让你变得***。 还有一点就是需要学好英语。虽然大部分Python相关的文档都有中文,但是新的技术和知识都是以英语作为**的语言的,并且许多讨论组也将英语作为沟通语言。 1.3 Python官方文档 Python官方网站有不少新手教程以及Python语言的全部内容,在开发过程中有任何疑惑都可以查阅文档中的记录以及示例。文档中详细写明了Python中各个功能的使用场景和参数定义以及源码。读者可以在官网https://docs.python.org/3/查找*新的文档。 Python官方文档的语言是英语,正如前文所说的,想要学好Python编程语言,读者朋友们也需要学好英语。也有不少热心的网友对官方文档进行了中文翻译,大家可以自行上网搜索。 1.4 常用软件 1.开发工具(IDE或编辑器) Python开发工具有许多,IDE的功能比较强大,工程师通过IDE进行代码开发时,一般IDE都会提供代码提示、文件和目录管理、代码搜索和替换、查找函数等功能。文本编辑器功能比较简单,但是有的编辑器例如Microsoft Visual Studio 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(Subversion),是一个开源的集中式版本控制系統,管理随时间改变的数据,所有数据集中存放在中央仓库(Repository)。Repository就好比一个普通的文件服务器,不过它会记住每一次文件的变动,这样你就可以把代码文件恢复到旧的版本,或是浏览代码文件的变动历史。 (2)Git,是一个开源的分布式版本控制系统,和SVN功能类似,但Git的每台电脑都相当于一个服务器,代码是*新的,比较灵活,可以有效、高速地处理项目版本管理。***大的代码托管网站GitHub,采用的也是Git技术。 3.其他工具 (1)JIRA,是Atlassian公司出品的项目与事务跟踪工具,可以使用此工具进行网站bug管理、缺陷跟踪、任务跟踪和敏捷管理等。 (2)Redmine,是用Ruby编程语言开发的一套跨平台项目管理系统,通过项目(Project)的形式把成员、任务(问题)、文档、讨论以及各种形式的资源组织在一起,用大家参与*新任务、文档等内容的方式来推动项目的进度,同时系统利用时间线索和各种动态的报表形式来自动向成员汇报项目进度,并提供Wiki、新闻台等,还可以集成其他版本管理系统和bug跟踪系统。 (3)XMind,一款实用的思维导图软件,可以使用XMind画产品架构图、项目流程图、功能分解图等,简单易用、美观、功能强大,拥有高效的可视化思维模式,具备可扩展、跨平台、稳定的性能,真正帮助用户提高生产率,促进有效的沟通及协作。 (4)TeamCola,由**团队开发的时间管理工具,能较好地解决时间问题,而其管理的时间颗粒度为半小时,也不会过多增加管理成本。