介绍
python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,Guido开始写能够解释Python语言语法的解释器。Python这个名字,来自Guido所挚爱的电视剧Monty Python’s Flying Circus。他希望这个新的叫做Python的语言,能符合他的理想:创造一种C和shell之间,功能全面,易学易用,可拓展的语言。
最新的TIOBE排行榜,Python赶超C++占据第3, Python崇尚优美、清晰、简单,是一个优秀并广泛使用的语言。
Python可以应用于众多领域,如:数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域。目前业内几乎所有大中型互联网企业都在使用Python,如:Youtube 、Dropbox 、BT 、Quora 、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、腾讯、汽车之家、美团等。
目前Python主要应用领域
-
WEB开发——最火的Python web框架Django, 支持异步高并发的Tornado框架,短小精悍的flask,bottle, Django官方的标语把Django定义为the framework for perfectionist with deadlines(大意是一个为完全主义者开发的高效率web框架)
-
网络编程——支持高并发的Twisted网络框架, py3引入的asyncio使异步编程变的非常简单
-
爬虫——爬虫领域,Python几乎是霸主地位,Scrapy\Request\BeautifuSoap\urllib等,想爬啥就爬啥
-
云计算——目前最火最知名的云计算框架就是OpenStack,Python现在的火,很大一部分就是因为云计算
-
人工智能——谁会成为AI 和大数据时代的第一开发语言?这本已是一个不需要争论的问题。如果说三年前,Matlab、Scala、R、Java 和 Python还各有机会,局面尚且不清楚,那么三年之后,趋势已经非常明确了,特别是前两天 Facebook 开源了 PyTorch 之后,Python 作为 AI 时代头牌语言的位置基本确立,未来的悬念仅仅是谁能坐稳第二把交椅。
-
自动化运维——问问中国的每个运维人员,运维人员必须会的语言是什么?10个人相信会给你一个相同的答案,它的名字叫Python
-
金融分析——我个人之前在金融行业,10年的时候,我们公司写的好多分析程序、高频交易软件就是用的Python,到目前,Python是金融分析、量化交易领域里用的最多的语言
-
科学运算—— 你知道么,97年开始,NASA就在大量使用Python在进行各种复杂的科学运算,随着NumPy, SciPy, Matplotlib, Enthought librarys等众多程序库的开发,使的Python越来越适合于做科学计算、绘制高质量的2D和3D图像。和科学计算领域最流行的商业软件Matlab相比,Python是一门通用的程序设计语言,比Matlab所采用的脚本语言的应用范围更广泛
-
游戏开发——在网络游戏开发中Python也有很多应用。相比Lua or C++,Python 比 Lua 有更高阶的抽象能力,可以用更少的代码描述游戏业务逻辑,与 Lua 相比,Python 更适合作为一种 Host 语言,即程序的入口点是在 Python 那一端会比较好,然后用 C/C++ 在非常必要的时候写一些扩展。Python 非常适合编写 1 万行以上的项目,而且能够很好地把网游项目的规模控制在
-
万行代码以内。另外据我所知,知名的游戏<文明> 就是用Python写的。
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完成各种各样的任务。
Python 2 or Python 3
In summary : Python 2.x is legacy, Python 3.x is the present and future of the language Python 3.0 was released in 2008. The final 2.x version 2.7 release came out in mid-2010, with a statement of extended support for this end-of-life release. The 2.x branch will see no new major releases after that. 3.x is under active development and has already seen over five years of stable releases, including version 3.3 in 2012,+
3.4 in 2014, and 3.5 in 2015. This means that all recent standard library improvements, for example, are only available by default in Python 3.x. Guido van Rossum (the original creator of the Python language) decided to clean up Python 2.x properly, with less regard for backwards compatibility than is the case for new releases in the 2.x range. The most drastic improvement is the better Unicode support (with all text strings being Unicode by default) as well as saner bytes/Unicode separation. Besides, several aspects of the core language (such as print and exec being statements, integers using floor division) have been adjusted to be easier for newcomers to learn and to be more consistent with the rest of the language, and old cruft has been removed (for example, all classes are now new-style, "range()" returns a memory efficient iterable, not a list as in 2.x). 目前虽然业内很多企业还在大量使用Python2.6 or 2.7,因为旧项目几十万甚至上百万行的代码想快速升级到3.0不是件容易的事,但是大家在开发新项目时几乎都会使用3.x。
二、Python基本语法
1.Python的语言特点
如果你熟悉其它计算机语言,可能习惯了在每行末尾都加上分号。在Python中无需这么做,因为在PYthon中,一行就是一行。如果你愿意,也可加上分号,但不会有任何影响(除非后面还有其他代码)。 在Python中,也极少用“{}”将代码块括起来来确定子代码的范围,而采取缩进的方式。这种方式看起来更加简洁,但是在某种程度来说,限制了编程时的自由度,你必须相对严格地按照特定的缩进方式对代码进行排版,因为一旦缩进错误,将会带来一些麻烦。
注释
# 单行注释 用#单行注释
'''多 “”“多
行 行
注 注
释‘’‘ 释“””
用英文的单引号或者双引号进行多行注释。当有的功能暂时不需要,但是又想保存代码的时候,就可以在源文件中将这部分代码注释,解释器在执行源文件的指令时,将会跳过注释的部分。
2.变量
变量(variable)是表示(或指向)特定值的名称。对于变量的3W,(What)量指的是记录事物的状态,变指的是事物的状态是可以改变的。(How)变量是为了让计算机具备人记忆事物状态的技能。例如,你可能想用a来表示整数1,为此,可以写出下列表达式:
a = 1
这称之为赋值(assignment),我们将1赋值给a。换言之,就是将变量a与值(或对象)1关联起来。
与其它语言不同,使用Python前必须给它赋值,因为Python变量没有默认值。Python还是强类型定义语言,它在语句中总是强制类型定义的,例如你有一个整数,如果不显式地进行转换,你不能将其视为一个字符串。而与JAVA不同的是,python在声明变量的时候,不需要声明变量的数据类型,因为python语法中规定每个变量在声明后必须有指向的数据或对象,而该数据或对象的类型就是变量的数据类型。
x = 1
print(type(x)) #<class 'int'> x = 'str'
print(type(x)) #<class 'str'>
上述代码中,当x指向整型“1”的时候,x为整型的变量,当x指向字符串“str”的时候,x为字符串类型的变量。
变量的具体用法
先定义
定义三大组成部分
变量名:变量名应该能反映出事物的属性
=:把变量值绑定给变量名
变量值:就是事物的状态
后引用
通过变量名引用值
强调:变量名是访问到值的唯一方式
变量名的命名
大前提:变量名应该见名知意
语法规定:
1. 变量名由字母、数字、下划线组成
2. 不能以数字开头
3. 不能使用python的关键字
变量值具备三种特征
id:是变量值在内存中的唯一标识(根据内存地址计算而来,内存地址不同则id不同,内存地址相同则id相同)
type:不同类型的值用来记录不同的状态
值
3.执行Python程序
交互解释器是Python的亮点之一,它让你能够实时地尝试解决方案以及尝试使用Python。然而当退出交互解释器的时候,内存中保存的代码被释放,你在交互解释器中编写的所有代码都将丢失。但是用交互解释器学习Python语言还是十分方便的。下面简要介绍如何使用交互解释器。
首先进入Python的官网https://www.python.org/ ,在Downloads条目下下载Python3.7版本的解释器。在安装的时候(我印象中),有一个添加路径到环境变量中,勾选之后可以直接在命令行中运行Python解释器。如果没有设置好环境变量,在此电脑(或我的电脑)中右键“属性”,选定左下方最后一项“高级系统设置”。
在新出现的对话框中点击“环境变量”,在系统变量的‘path’路径下添加Python的安装目录,在该目录下应该存在python.exe文件。
设置环境变量后按下“win+r”键,在运行窗口输入“cmd”,win10系统直接在搜索栏里输入“cmd”按回车,可以调出命令行,输入Python即可在解释器上用交互的方式编写程序。
脚本方式
脚本文件的方式运行程序可以永久保存代码。在命令行中输入“python+空格+文件路径+文件名”,如“pytho D:\user\python_doc\helloworld.py”。理论上python解释器可以读取任何文本文件,如txt,但是为了方便区分,还是把源代码的后缀命名为“.py”,但是要知道以txt甚至PNG后缀存储的源代码依然可以运行。
4.基本数据类型
数字类型
整型(int)
作用:记录年龄、等级、数量、号码
定义:v=0 \ v=int(0)
浮点型(float)
作用:记录薪资、身高、体重
定义:v=0.0 \ v=float(0.0)
字符串(str)
作用:记录描述性质的状态
定义:在单引号/双引号/三引号中包含一系列字符
列表类型(list)
作用:按照位置记录多个同种属性的值(索引对应值,索引从0开始,代表的就是位置),并且可以取出指定位置的某一个值
定义:在[]内用逗号分隔开多个任意类型的值
字典类型(dict)
作用:记录多个不同属性的值
定义:在{}内用逗号分开个多个元素,每一个元素都由key:value组成
value就是我们存放的值,可以是任意类型,一个key唯一对应一个value,key应该对value有描述性的功能,所以key通常是str类型。
布尔类型(boolean)
作用:用于判断
定义:x=True \ y=False
强调:所有的数值都自带布尔值