基础篇——测试工程师Python开发实战(01)

发表于:2023-7-06 09:00

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:胡通    来源:51Testing软件测试网原创

#
Python
  第一篇基础篇
  用己之力,初入职场。面对一门全新的编程语言Python,大家是会拿着一本厚厚的Python基础知识大全从头到尾地学习呢,还是根据项目需要重点优先学习项目涉及的知识点呢?答案显而易见,相信大多数读者都会选择后者,但是实际上,还是有很多新手会在学习的时候陷入一个怪圈:明明自己在很努力地看书,几个月后,却发现自己永远在学习图书前一二章的内容。因为我们每次打开图书,都会发现之前看过的已经遗忘了,索性就又从头看一遍,久而久之,每次兴致勃勃地看书,却永远在重复看前面的内容,到最后没精力和机会学习后面的知识了。笔者根据个人的经验,建议大家在实际工作中采用“以练代学”的方式,这样掌握知识比较可靠,而且学习后的即时反馈也更加直接,大家会比较容易获得成就感和满足感,形成良性循环。
  笔者认为在学习一门新知识时“二八定律”是适用的,即只需要优先掌握20%的知识点,就能满足80%的工作需要了。本着这个定律,本书的基础篇不会涵盖所有的Python基础语法知识点,因为市面上已经有很多系统性的图书了。Python语法众多,工具也不少,而想要快速掌握Python以满足工作需要,我们只需要重点掌握其中20%的内容。
  基础篇只涉及在实际工作中会用到的内容,共3章,第1章是Python环境,包括安装部署Python、虚拟环境、包管理等内容;第2章是PyCharm工具,包括PyCharm的简介、配置环境、常用功能等内容;第3章是Python基础,核心是数据类型、面向对象编程和面向过程编程等内容。
  第1章Python环境
  如今Python版本众多,学习Python,首先需要学会如何安装部署不同的版本,然后学会如何搭建基础的虚拟环境,方便多项目的开发管理,最后学会如何使用第三方工具(库和模块),通过“站在别人的肩膀上”,复用功能模块,提升工作效率。本章从Python简介、Python安装升级、pip管理工具包、Python虚拟环境4个方面逐一讲解。接下来,我们就正式开始Python的开发学习。
  1.1  Python简介
  Python是一种解释型、面向对象的高级程序设计语言。Python是一种解释型语言,这意味着开发过程中没有编译这个环节,类似于PHP和Perl。Python是面向对象语言,这意味着Python支持面向对象的风格或代码封装在对象中的编程技术
  1.1.1  Python的特点
  通常,Python具有易于学习、易于阅读、易于维护、标准库丰富、可移植、可扩展、可嵌入等特点,如表1-1所示。
表1-1  Python的特点
  1.1.2  Python的用途
  学习Python,我们可以从事Web应用开发、网络爬虫、人工智能、数据分析、自动化运维等相关领域的工作,具体的岗位如Python爬虫工程师、大数据工程师、人工智能工程师等。
  下面我们具体介绍Python的用途。
  (1)Web应用开发。因为Python是一种解释型的脚本语言,开发效率高,所以非常适合用来做Web应用开发。Python有上百种Web应用开发框架,有很多成熟的模板技术,选择Python开发Web应用,不仅开发效率高,而且运行速度快。常用的Web应用开发框架有Django、Flask、Tornado等。许多知名的互联网企业也将Python作为主要的Web应用开发语言,例如豆瓣、知乎、Google、YouTube、Facebook等。
  (2)网络爬虫。网络爬虫是Python比较常用的一个应用场景,Google在早期大量地使用Python语言作为网络爬虫的基础,带动了整个Python语言的应用发展。以前国内很多人用采集器搜集网上的信息,现在用网络爬虫收集网上的信息比以前容易很多了,例如从各大网站爬取商品折扣信息,比较获取最优选择;对社交网络上发言进行收集和分类,生成情绪地图,分析语言习惯;爬取网易云音乐某一类歌曲的所有评论,生成词云;按条件筛选获得豆瓣的电影、图书信息并生成表格等。应用实在太多,几乎每个人学会使用网络爬虫之后都能够通过网络爬虫去做一些有趣且有用的事。
  (3)人工智能。人工智能是现在非常火的一个方向,人工智能热潮让Python语言的未来充满了无限的可能。目前几个非常有影响力的人工智能框架,大多是通过Python实现的,这是因为Python有很多工具方便做人工智能,例如NumPy、SciPy可用于数值计算,scikit-learn可用于机器学习,PyBrain可用于神经网络,matplotlib可用于数据可视化。但是,人工智能的大部分核心算法的实现还是依赖于C/C++的,因为人工智能的核心算法是计算密集型的,需要非常精细的优化,还需要GPU、专用硬件之类的接口,这些都只有C/C++能做到。
  (4)数据分析。Python在数据分析处理方面有很完备的生态环境。大数据分析中涉及的分布式计算、数据可视化、数据库操作等,我们都可以选择Python中成熟的模块完成其功能。例如,对于Hadoop MapReduce和Spark,都可以直接使用Python完成其计算逻辑,这无论对于数据科学家还是对于数据分析师都是十分便利的。
  (5)自动化运维。Python对于服务器运维也有十分重要的用途。由于目前几乎所有Linux发行版中都自带了Python解释器,因此在Linux服务器上使用Python脚本进行批量化的文件部署和运行调整是很不错的选择。从调控SSH/SFTP用的paramiko,到监控服务用的supervisor等,Python提供了全方位的工具集合,在这个基础上,结合Web应用,开发运维工具也会变得十分简单。
  1.1.3  Python的历史
  Python现在有两个大版本、很多小版本,Python的版本号如图1-1所示。
  Python的两个大版本,一个是Python 2,另一个是Python 3。Python 2的第一个发行版本是在2000年10月官方发布的。于2020年1月1日,Python 2停止更新,这意味着Python 2.7成为最后一个Python 2的小版本,现在很多CentOS原始自带的还是Python 2.7的。
图1-1  Python的版本号
  Python 3和Python 2在语法使用上是有一些区别的,建议新手学习或构建新项目的时候就采用Python 3。Python的较新版本如图1-2所示,本书采用的是Python 3.9.8。
图1-2  Python的较新版本
  提示
  Python的版本号规则,通常分3段,即为A.B.C。其中,A表示大版本号,一般当整体重写,或出现不向后兼容的改变时,增加A;B表示功能更新,出现新功能时增加B;C表示小修改,如修复bug,只要有修改就增加C。
  正确的学习方式将帮助我们快速成长为一名优秀的Python开发人员。下面是几条建议,供大家参考。
  (1)明确学习目标。在学习Python之前,目标应该很明确。Python是一种简单而应用广泛的语言,它包括许多库、模块、内置函数和数据结构。因此,我们首先要弄清楚学习的动机,根据兴趣选择一个或两个领域,例如数据分析处理、游戏等,然后开始学习Python。
  (2)学习20%基础语法。学习Python的语法是最重要和最基本的步骤。在深入学习Python的语法之前,我们必须学习其基础语法。而只需要重点、优先掌握其中20%的知识即可满足大部分的项目需求。因此,我们可以花费最少的时间来学习其语法。一旦我们正确地掌握了其语法,就可以更轻松、更快速地进行项目工作。
  (3)动手实践编写代码。编写代码是学习Python的最有效、最可靠的方法。在这个过程中,我们务必亲自编写代码,而不是复制粘贴,编写代码将帮助我们快速熟悉相关的语法和概念。注意,在编写代码时,请尝试使用合适的函数和合适的变量名称,尽可能做到合规、专业。
  (4)尝试做小型项目。在了解Python的基础语法和有一定的代码编写经验之后,初学者应该尝试做一些小型项目。这将有助于我们更深入地了解Python中的更多组件。我们可以从小型项目开始,如闹钟应用、待办事项列表、客户管理系统等。当顺利完成一个小项目的开发时,成功的喜悦感会油然而生,这将进一步增加我们学习的动力,以深入更高级的领域。
  (5)与别人分享。“如果你想学习一些东西,那么你应该教别人”。在学习Python时也是如此,通过创建博客、微信公众号等,与其他人分享知识。这将帮助我们增进对Python的理解,并探索自己知识中未发现的不足。
  (6)探索工具和框架。Python由庞大的工具库和各种框架组成。熟悉Python的基础语法之后,下一步就是探索Python工具。这些工具对于处理特定域的项目是必不可少的。我们要懂得复用,站在巨人的肩膀上,减少重复工作,提高工作效率。
  (7)为开源做贡献。众所周知,Python是一种开源语言,这意味着每个人都可以免费使用它。我们可以为Python在线社区做出贡献,以增强我们的知识价值。为开源项目做贡献是探索知识的最佳方法。我们还会收到对我们提交的工作的反馈、评论或建议。这将进一步促使我们成为一名优秀的Python开发人员。
版权声明:51Testing软件测试网获得作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号