本章将介绍Python的最基本语法,以及一些和深度学习还有计算机视觉最相关的基本使用。

Python简介

Python是一门解释型的高级编程语言,特点是简单明确。Python作者是荷兰人Guido van Rossum,1982年他获得数学和计算机硕士学位后,在荷兰数学与计算科学研究所(Centrum Wiskunde & InformaTIca, CWI)谋了份差事。在CWI期间,Guido参与到了一门叫做ABC的语言开发工作中。ABC是一门教学语言,所以拥有简单,可读性好,语法更接近自然语言等特点。在那个C语言一统天下的年代,ABC就是一股简单的清流,毕竟是门教学语言,最后没有流行起来,不过这段经历影响了Guido。1989年的圣诞假期,闲得蛋疼的Guido决定设计一门简单易用的新语言,要介于C和Shell之间,同时吸取ABC语法中的优点。Guido用自己喜欢的一部喜剧电视剧来命名这门语言:《Monty Python"s Flying Circus》。

1991年,第一版基于C实现的Python编译器诞生,因为简单,拓展性好,Python很快就在Guido的同事中大受欢迎,不久Python的核心开发人员就从Guido一人变成了一个小团队。后来随着互联网时代的到来,开源及社区合作的方式蓬勃发展,Python也借此上了发展的快车道。因为Python非常容易拓展,在不同领域的开发者贡献下,许多受欢迎的功能和特征被开发出来,渐渐形成了各种各样的库,其中一部分被加入到Python的标准库中,这让本来就不需要过多思考底层细节的Python变得更加强大好用。在不过多考虑执行效率的前提下,使用Python进行开发的周期相比传统的C/C++甚至Java等语言都大大缩短,代码量也大幅降低,所以出bug的可能性也小了很多。因此有了语言专家Bruce Eckel的那句名言:Life is short, you need Python. 后来这句话的中文版“人生苦短,我用Python”被Guido印在了T恤上。发展至今,Python渐渐成了最流行的语言之一,在编程语言排行榜TOBIE中常年占据前5的位置。另外随着Python的用户群越来越壮大,慢慢在本身特点上发展出了自己的哲学,叫做Python的禅(The Zen of Python)。遵循Python哲学的做法叫做很Python(Pythonic),具体参见:

PEP 20 — The Zen of Python

>> import this

Python拥有很好的扩充性,可以非常轻松地用其他语言编写模块供调用,用Python编写的模块也可以通过各种方式轻松被其他语言调用。所以一种常见的Python使用方式是,底层复杂且对效率要求高的模块用C/C++等语言实现,顶层调用的API用Python封装,这样可以通过简单的语法实现顶层逻辑,故而Python又被称为“胶水语言”。这种特性的好处是,无需花费很多时间在编程实现上,更多的时间可以专注于思考问题的逻辑。尤其是对做算法和深度学习的从业人员,这种方式是非常理想的,所以如今的深度学习框架中,除了MATLAB,或是Deeplearning4j这种摆明了给Java用的,其他框架基本上要么官方接口就是Python,要么支持Python接口。

安装和使用Python

Python有两个大版本,考虑到用户群数量和库的各种框架的兼容性,本文以Python2(2.7)为准,语法尽量考虑和Python3的兼容。

Unix/Linux下的Python基本都是系统自带的,一般默认为Python2,使用时在终端直接键入python就能进入Python解释器界面:

在解释器下就已经可以进行最基本的编程了,比如:

写程序的话还是需要保存成文件再执行,比如我们写下面语句,并且保存为helloworld.py:

print(“Hello world!”)

然后在终端里执行:

安装更多的python库一般有两种方法,第一是用系统的软件包管理,以Ubuntu 16.04 LTS为例,比如想要安装numpy库(后面会介绍这个库),软件包的名字就是python-numpy,所以在终端中输入:

>> sudo apt install python-numpy

Python自己也带了包管理器,叫做pip,使用如下:

>> pip install numpy

安装和深度学习相关的框架时,一般来说推荐使用系统自带的包管理,出现版本错误的可能性低一些。另外也可以使用一些提前配置好很多第三方库的Python包,这些包通常已经包含了深度学习框架中绝大多数的依赖库,比如最常用的是Anaconda:

Download Anaconda Now!

python语言教程-python基础教程相关推荐

  1. python语言入门w-Python 基础教程

    关于脚本第一行的 #!/usr/bin/python 的解释,相信很多不熟悉 Linux 系统的同学需要普及这个知识,脚本语言的第一行,只对 Linux/Unix 用户适用,用来指定本脚本用什么解释器 ...

  2. python语言入门q-Python基础教程中的函数

    一些重要的内建函数 abs(number) ---- 返回一个数的绝对值 apply(function[, args[, kwds]]) ---- 调用给定的函数,可选择提供参数 all(iterab ...

  3. 《Python程序设计与算法基础教程(第二版)》江红 余青松,第九章课后习题答案

    推荐阅读 <Python程序设计与算法基础教程(第二版)>江红 余青松 全部章节的课后习题,上机实践,课后答案,案例研究 文章目录 例9.1~例9.53 填空题:2 思考题:3~11 上机 ...

  4. 《Python程序设计与算法基础教程(第二版)》江红 余青松 全部章节的课后习题,上机实践,课后答案,案例研究

    (还在更新中-) 这篇博客花费了我的大量时间和精力,从创作到维护:若认可本篇博客,希望给一个点赞.收藏 并且,遇到了什么问题,请在评论区留言,我会及时回复的 这本书对Python的知识点的描述很详细, ...

  5. Python爬虫之XPath基础教程:用代码抓取网页数据

    Python爬虫之XPath基础教程:用代码抓取网页数据 在网络时代,网页数据是获取信息和进行分析的最重要的来源之一.Python的爬虫技术让我们可以轻松抓取网页数据,并进行数据处理.XPath是一种 ...

  6. Python绘图之matplotlib基础教程:matplotlib库图表绘制中常规设置大全(交互模式、清除原有图像、设置横坐标显示文字/旋转角度、添加图例、绘图布局自动调整、图像显示、图像暂停)

    Python绘图之matplotlib基础教程:matplotlib库图表绘制中常规设置大全(交互模式.清除原有图像.设置横坐标显示文字/旋转角度.添加图例.绘图布局自动调整.图像显示.图像暂停) 目 ...

  7. python程序设计与算法基础江红答案_《Python程序设计与算法基础教程(第二版)》江红 余青松,第十一章课后习题答案...

    推荐阅读 <Python程序设计与算法基础教程(第二版)>江红 余青松 全部章节的课后习题,上机实践,课后答案,案例研究 文章目录 一些知识点总结和几个例题 选择题:1~5 填空题:1~8 ...

  8. 《Python程序设计与算法基础教程(第二版)》江红 余青松,第十章课后习题答案

    推荐阅读 <Python程序设计与算法基础教程(第二版)>江红 余青松 全部章节的课后习题,上机实践,课后答案,案例研究 文章目录 上机实践:2~4 案例研究:基于模块的库存管理系统 上机 ...

  9. Python程序设计与算法基础教程(第二版)微课版第四章上机实践答案

    Python程序设计与算法基础教程(第二版)微课版第四章上机实践答案 2. def generate(L) : #生成杨辉三角的 一行List = [1]for x in range(1,len(L) ...

  10. python语言能做什么软件-什么是Python语言,Python语言可以用来做什么?

    什么是Python语言? Python是一种计算机程序设计语言.你可能已经听说过很多种流行的编程语言,比如非常难学的C语言,非常流行的Java语言,适合初学者的Basic语言,适合网页编程的JavaS ...

最新文章

  1. 最新Transformer模型大盘点,NLP学习必备,Google AI研究员出品丨资源
  2. java浮点整型数组_如何将C风格的二进制浮点数组读入Java?
  3. 深度学习核心技术精讲100篇(五十九)-多业务融合推荐策略实战应用
  4. iptables中文man文档
  5. 弹出提示框 自动消失
  6. 总结Selenium WebDriver中一些鼠标和键盘事件的使用
  7. python读json文件中不同的数据类型_怎么使用python提取json文件中的字段
  8. MongoDB基本管理命令 [转]
  9. cad填充图案乱理石_「AutoCAD之填充」CAD图案填充的6个要点以及3个墙裂的建议...
  10. 2022蓝帽杯半决赛电子取证
  11. fudannlp的maven可编译版本
  12. Gitter---高颜值GitHub小程序客户端诞生记,2021年安卓社招面试题精选
  13. Kingofark的人工智能启示录
  14. 小程序实现分享朋友圈
  15. 轻型货车鼓式制动器设计(论文+CAD图纸+Catia三维图+开题报告+任务书+翻译……)
  16. SVN更新出错 提示:working copy XXX locked
  17. 计算机切换输入法Word关闭,win7旗舰版64位系统下word程序无法切换输入法的解决方法...
  18. 智慧零售企业向服务升级进行时,全面实时监控成重点
  19. ERP出库审核业务(四十四)
  20. 飞桨领航团AI达人创造营第三课笔记

热门文章

  1. Android的开机流程
  2. storm_常用命令
  3. jenkins打完包在哪里
  4. Atitit.css 规范 bem  项目中 CSS 的组织和管理
  5. Windows进程间通信的各种方法
  6. 关于添加“服务引用”和“添加引用”的一点总结
  7. Linux环境下获取网卡连接状态
  8. android 点击扩散,Android水波纹扩散效果
  9. android 21点游戏代码,Android 21点
  10. 大学计算机基础课程报告python-基于Python的“大学计算机基础”课程教学设计.doc...