人生苦短,我用Python(Python快速教程 - 基础篇)

Life is short, you need Python

人生苦短,我用Python

Python简介

本章将介绍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)。

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!

Windows下的Python安装简单一些,从官方网站下载相应的安装程序就可以了,当然也有更方便的已经包含了很全的第三方库的选择,WinPython:

WinPython

并且是绿色的,直接执行就可以用了。

Python基本语法

There should be one-- and preferably only one --obvious way to do it.

对于一个特定的问题,应该只用最好的一种方法来解决。

-- Tim Peters

基本数据类型和运算

基本数据类型

Python中最基本的数据类型包括整型,浮点数,布尔值和字符串。类型是不需要声明的,比如:

其中#是行内注释的意思。最后一个None是NoneType,注意不是0,在Python中利用type函数可以查看一个变量的类型:

注释中是执行type()函数后的输出结果,可以看到None是单独的一种类型NoneType。在很多API中,如果执行失败就会返回None。

变量和引用

Python中基本变量的赋值一般建立的是个引用,比如下面的语句:

a赋值为1后,b=a执行时并不会将a的值复制一遍,然后赋给b,而是简单地为a所指的值,也就是1建立了一个引用,相当于a和b都是指向包含1这个值的这块内存的指针。所以c=1执行的也是个引用建立,这三个变量其实是三个引用,指向同一个值。这个逻辑虽然简单,不过也还是常常容易弄混,这没关系,Python内置了id函数,可以返回一个对象的地址,用id函数可以让我们知道每个变量指向的是不是同一个值:

注释中表示的仍是执行后的结果。如果这时候我们接下面两个语句:

可以看到b引用到了另一个变量上。

运算符

Python中的数值的基本运算和C差不多,字符串的运算更方便,下面是常见的例子:

需要提一下的几点:1)字符串用双引号和单引号都可以,区别主要是单引号字符串中如果出现单引号字符则需要用转义符,双引号也是一样,所以在单引号字符串中使用双引号,或者双引号字符串中使用单引号就会比较方便。另外三个双引号或者三个单引号围起来的也是字符串,因为换行方便,更多用于文档。2)Python2中两个数值相除会根据数值类型判断是否整数除法,Python3中则都按照浮点数。想要在Python2种也执行Python3中的除法只要执行下面语句:

3)字符串前加r表示字符串内容严格按照输入的样子,好处是不用转义符了,非常方便。

Python中的布尔值和逻辑的运算非常直接,下面是例子:

基本上就是英语,操作符优先级之类的和其他语言类似。Python中也有位操作:

==, !=和is

判断是否相等或者不等的语法和C也一样,另外在Python中也常常见到is操作符,这两者的区别在于==和!=比较引用指向的内存中的内容,而is判断两个变量是否指向一个地址,看下面的代码例子:

所以一定要分清要比较的对象应该用那种方式,对于一些特殊的情况,比如None,本着Pythonic的原则,最好用is None。

注意关键字

Python中,万物皆对象。不过这并不是这里要探讨的话题,想说的是一定要注意关键字,因为所有东西都是对象,所以一个简简单单的赋值操作就可以把系统内置的函数给变成一个普通变量,来看下边例子:

注意print是个很特殊的存在,在Python3中是按照函数用,在Python2中却是个命令式的语句,最早print的用法其实是下边这样:

这么用主要是受到ABC语法的影响,但这个用法并不Pythonic,后来加入了print函数,为了兼容允许两种用法并存。所以单纯给print赋值是不灵的,在Python2中使用Python3中的一些特性都是用from __future__ import来实现。

模块导入

因为提到了对象名覆盖和import,所以简单讲一下。import是利用Python中各种强大库的基础,比如要计算cos(π)的值,可以有下面4种方式:

一般来说最后一种方式不是很推荐,因为不知道import导入的名字里是否和现有对象名已经有冲突,很可能会不知不觉覆盖了现有的对象。

由于受到篇幅限制,这篇就先写到这里,想要了解更多关于python知识的小伙伴,可以关注+私信小编。

最后给大家带来一波福利,400集python视频免费领取,注意是免费的哦!领取方式:关注 + 私信小编 “ 学习 ”,即可免费获取!

领取方式:关注 + 私信小编 “ 学习 ”,即可免费获取!

【免责声明】本文仅代表作者或发布者个人观点,不代表SEO研究协会网(www.seoxiehui.cn)及其所属公司官方发声,对文章观点有疑义请先联系作者或发布者本人修改,若内容涉及侵权或违法信息,请先联系发布者或作者删除,若需我们协助请联系平台管理员,邮箱cxb5918@163.com(本平台不支持其他投诉反馈渠道,谢谢合作)。若需要学习以上相关知识请到巨推学院观看视频教程,网址www.jutuiedu.com。

python人生苦短_人生苦短,我用Python(教程基础篇)相关推荐

  1. [Python从零到壹] 四十一.图像处理基础篇之图像采样处理

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  2. [Python从零到壹] 三十七.图像处理基础篇之图像融合处理和ROI区域绘制

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  3. [Python从零到壹] 四十.图像处理基础篇之图像量化处理

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  4. [Python从零到壹] 三十三.图像处理基础篇之什么是图像处理和OpenCV配置

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  5. 视频教程-Redis进阶教程—基础篇-NoSQL

    Redis进阶教程-基础篇 雅座Java架构师,架构开发公司百万级订单支付平台 叶向阳 ¥49.00 立即订阅 扫码下载「CSDN程序员学院APP」,1000+技术好课免费看 APP订阅课程,领取优惠 ...

  6. Midjourney|文心一格prompt教程[基础篇]:注册使用教程、风格设置、参数介绍、隐私模式等

    Midjourney|文心一格prompt教程[基础篇]:注册使用教程.风格设置.参数介绍.隐私模式等 开头讲一下为什么选择Midjourney和文心一格,首先Midjourney功能效果好不多阐述: ...

  7. 基于c++和asio的网络编程框架asio2教程基础篇:1、基本概念和使用说明

    基于c++和asio的网络编程框架asio2教程基础篇:1.基本概念和使用说明 由于asio2没有写技术文档,因此打算写几篇文章介绍一下如何使用它,主要是针对新手. 1.asio2如何使用? asio ...

  8. 基于c++和asio的网络编程框架asio2教程基础篇:2、各个回调函数的触发顺序和执行流程

    基于c++和asio的网络编程框架asio2教程基础篇:2.各个回调函数的触发顺序和执行流程 以tcp举例: tcp服务端流程: #include <asio2/asio2.hpp>int ...

  9. 付呗聚合支付快速教程 基础篇①——基本介绍和配置

    文章目录 一.对接手册 二.商户后台 三.银行分账 四.其他介绍 一.对接手册 付呗聚合支付对接手册 第一步自然是商务对接 本专栏是作为付呗的普通级商户,商户后台 使用付呗开发平台的支付API,接入到 ...

最新文章

  1. 在IOS开发中根据(id)sender获取UIButton的信息
  2. 【 C 】指向数组的指针(数组指针)(行指针)
  3. redis 分布式锁 看门狗_漫谈分布式锁之Redis实现
  4. 07-爬虫验证码破解实战
  5. $.post $.getScript
  6. HttpClient异常处理手册
  7. 史上最烂代码_历史上最大的代码库
  8. 检验int值在list中是否存在_R语言统计与绘图:卡方检验
  9. python数据可视化散点图案例_Python数据可视化—散点图_python 数据可视化
  10. int** 赋值_关于Java语言复合赋值运算符的两个问题,快来瞧瞧
  11. 大数据城市规划 杨东_AI为智慧城市规划做建设
  12. 可微偏导数一定存在_【数学】多元函数可微如何判断?
  13. 2021最新Java高频面试题,很适合大厂面试
  14. 13.UNIX 环境高级编程--守护进程
  15. 概率图模型-贝叶斯网络
  16. 【图像检索】基于matlab GUI综合颜色和形状特征图像检索【含Matlab源码 395期】
  17. Lan Xiang's Square nyoj 1099(已经四边形四点坐标 如何判断正方形)
  18. 计算机的使用编码,计算机中使用的编码
  19. coreldraw sp2精简版 x4_CorelDRAW X4下载-CorelDRAW X4 SP2 精简版_Win10镜像官网
  20. 显微镜下的大明内容_显微镜下的大明

热门文章

  1. Sorry,Buddha
  2. 配置DCOM时,交互式用户灰色不可选
  3. 2019-04《信息资源管理 02378》真卷(独家文字版),圈定章节考点+统计真题分布
  4. lunix安装tornado
  5. [ 网络协议篇 ] vlan 详解之 MUX vlan 详解
  6. Linux下echo命令
  7. eclipse 中的 git unauthorized 2022
  8. wap2app(五)-- 微信授权登录以及踩过的坑
  9. 使用HBuilder - wap2app 打包vue写的移动端项目 禁用原生标题栏
  10. 计算机毕设(附源码)JAVA-SSM泸定中学宿舍管理系统设计