Python能够应用于众多领域,如:数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域。目前业内几乎全部大中型互联网企业都在使用Python,如:Youtube、Dropbox、BT、Quora(中国知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、腾讯、汽车之家、美团等。java
目前Python主要应用领域python
Python在一些公司的应用c++
python发展史web
python是什么编程语言算法
编程语言主要从如下几个角度为进行分类,编译型和解释型、静态语言和动态语言、强类型定义语言和弱类型定义语言,每一个分类表明什么意思呢,咱们一块儿来看一下。shell
编译型与解释型编程
编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机能够直接以机器语言来运行此程序,速度很快;安全
而 解释器 则是只在执行程序时,才一条一条的解释成机器语言给计算机来执行,因此运行速度是不如编译后的程序运行的快的.网络
这是由于计算机不能直接认识并执行咱们写的语句,它只能认识机器语言(是二进制的形式)多线程
编译型
优势:编译器通常会有预编译的过程对代码进行优化。由于编译只作一次,运行时不须要编译,因此编译型语言的程序执行效率高。能够脱离语言环境独立运行。
缺点:编译以后若是须要修改就须要整个模块从新编译。编译的时候根据对应的运行环境生成机器码,不一样的操做系统之间移植就会有问题,须要根据运行的操做系统环境编译不一样的可执行文件。
解释型
优势:有良好的平台兼容性,在任何环境中均可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就能够,能够快速部署,不用停机维护。
缺点:每次运行的时候都要解释一遍,性能上不如编译型语言。
动态语言和静态语言
一般咱们所说的动态语言、静态语言是指动态类型语言和静态类型语言。
(1)动态类型语言:动态类型语言是指在运行期间才去作数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,
在内部将数据类型记录下来。Python和Ruby就是一种典型的动态类型语言,其余的各类脚本语言如VBScript也多少属于动态类型语言。
(2)静态类型语言:静态类型语言与动态类型语言恰好相反,它的数据类型是在编译其间检查的,也就是说在写程序时要声明全部变量的数据类型,C/C++是静态类型语言的典型表明,
其余的静态类型语言还有C#、JAVA等。
强类型定义语言和弱类型定义语言
(1)强类型定义语言:强制数据类型定义的语言。也就是说,一旦一个变量被指定了某个数据类型,若是不通过强制转换,那么它就永远是这个数据类型了。
举个例子:若是你定义了一个整型变量a,那么程序根本不可能将a看成字符串类型处理。强类型定义语言是类型安全的语言。
(2)弱类型定义语言:数据类型能够被忽略的语言。它与强类型定义语言相反, 一个变量能够赋不一样数据类型的值。
强类型定义语言在速度上可能略逊色于弱类型定义语言,可是强类型定义语言带来的严谨性可以有效的避免许多错误。另外,“这门语言是否是动态语言”与“这门语言是否类型安全”之间是彻底没有联系的!
例如:Python是动态语言,是强类型定义语言(类型安全的语言); VBScript是动态语言,是弱类型定义语言(类型不安全的语言); JAVA是静态语言,是强类型定义语言(类型安全的语言)。
经过上面这些介绍,咱们能够得出, python是一门动态解释性的弱类型定义语言。
python的优缺点
先看优势
再看缺点
当咱们编写Python代码时,咱们获得的是一个包含Python代码的以 .py 为扩展名的文本文件。要运行代码,就须要Python解释器去执行 .py 文件。
因为整个Python语言从规范到解释器都是开源的,因此理论上,只要水平够高,任何人均可以编写Python解释器来执行Python代码(固然难度很大)。事实上,确实存在多种Python解释器。
python的种类
Python的官方版本,使用C语言实现,使用最为普遍,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),而后运行在Python虚拟机上。
Python的Java实现,Jython会将Python代码动态编译成Java字节码,而后在JVM上运行。
Python的C#实现,IronPython将Python代码编译成C#字节码,而后在CLR上运行。(与Jython相似)
Python实现的Python,将Python的字节码字节码再编译成机器码。
Python 的环境
Windows:
下载地址:https://www.python.org/downloads/
首先区分你当前的操做系统,而后选择相对应的内容进行点击,我当前操做系统是Windows我选择的是普通电脑系统.下一步以下图:
而后选择和你电脑相对应的点击,而后就自动下载了
安装详解
Linux:
自带python环境
[meet@r usr]$ python37 -V Python 3.7.0 [meet@r usr]$ python3 -V Python 3.4.9 [meet@r usr]$ python2 -V Python 2.7.5
更新python环境
一、安装gcc,用于编译Python源码 yum install gcc 二、下载源码包,https://www.python.org/ftp/python/ 三、解压并进入源码文件 四、编译安装 ./configure make all make install 五、查看版本 /usr/local/bin/python2.7 -V 六、修改默认Python版本 mv /usr/bin/python /usr/bin/python2.6 ln -s /usr/local/bin/python2.7 /usr/bin/python 七、防止yum执行异常,修改yum使用的Python版本 vi /usr/bin/yum 将头部 #!/usr/bin/python 修改成 #!/usr/bin/python2.6
Python 入门
1、'Hello World!'
python2写法: print 'hello world' python3写法: print('hello world')
2、执行(解释器)
明确的指出 hello.py 脚本由 python 解释器来执行。
[meet@r usr]$ cat hello.py #!/usr/bin/env python print("Hello World!") [meet@r usr]$ sudo chmod +x hello.py [meet@r usr]$./hello.py Hello World!
执行Python代码时,若是导入了其余的 .py 文件,那么,执行过程当中会自动生成一个与其同名的 .pyc 文件,该文件就是Python解释器编译以后产生的字节码。
[meet@r usr]$ ls a.py* a.py a.pyc [meet@r usr]$
3、变量
一、声明变量
name = 'Meet' # 这样的形式就是在定义一个变量 name 是一个变量名 = 是一个赋值操做 'Meet' 是一个值
变量的做用:昵称其代指内存里某个地址中保存的内容
变量定义的规则:
二、变量的赋值
name1 = 'Meet' name2 = 'Guo'
name1 = 'Meet' name2 = name1
变量的小高级
常量:
常量就是将变量名大写,尽可能保持不更改的一种量
4、注释
单行注释:#Meet
多行注释:'''Meet'''
单行注释(当行注释) # Meet 多行注释 ''' M e e t '''
5、基础数据类型(int,str,bool)
int是整型;也就是咱们从小就接触的数学中的整数,整型在计算机中运于计算和比较
定义一个int类型
num1 = 2 num2 = 3 print(num1 + num2) 结果: 5 # 整型就和咱们学的数学同样能够进行加减乘除
str是字符串;也就是咱们从小就接触的中文,若是咱们在程序中直接把中文写入,程序是不能分辨这是个什么鬼东西.因此咱们要遵循一种规则
让计算机可以识别,这个规则就是只要是用引号引发来就是字符串
定义一个str类型
s1 = '我是中文' s2 = '我是英文' print(s1 + s2) 结果: 我是中文我是英文 # 字符串相加就实现一个拼接的效果,字符串只能和字符串相加 # 字符串也能够作乘法,可是乘法的时候只能和数字相乘
bool是布尔值;其实这个东西也是咱们很小就接触的东西,俗话说人要<明辨是非>.其实这个bool值就是咱们所说的是非,布尔值中一共分为俩个状态
True 就对应咱们话中的是,白话来讲就是真
False 就对应咱们话中的非,白话来讲就是假
例如咱们想让计算机帮咱们作一下俩个的大小比较
print(3>7) 结果: False print(7>3) 结果: True
6、程序交互(用户交互)
输入用户名
#!/usr/bin/env python #-*- coding:utf-8 -*- #将用户输入的内容赋值给name变量 name = raw_input("请输入用户名:") print name #python3的写法 name = input("请输入用户名:") print(name)
输入密码时,若是想要不可见,须要利用getpass 模块中的 getpass方法,即:
#!/usr/bin/env python #-*- coding:utf-8 -*- import getpass pwd = getpass.getpass("请输入密码:") print(pwd)
须要注意的是input程序交互获取到的内容是字符串,咱们看下面的简单示例:
num = input('请输入数字:') print(num + 5) 结果: 请输入数字:6 Traceback (most recent call last): File "D:/python_object/test.py", line 350, in <module> print(num + 5) TypeError: must be str, not int # 报错了,提示咱们类型错误,数字和字符串是不能相加的.但是咱们输入的明明是数字啊.其实咱们看着输入的是 # 数字可是input获取到的都是字符串
7、流程控制与缩进
二选一游戏(二者活一者)
num = input('请输入要比较的数字:') if int(num) > 5: print('您输入的数字大于5') else: print('您输入的数字小于5')
以上这种写法是让用户输入内容,而后进行比较,若是一个条件成立那就执行print,而后程序就退出了.下边的else就不会在执行了
多个选项进行单选(选择题)
num = input('请输入要比较的数字:') if int(num) > 5: print('您输入的数字大于5') elif int(num) == 5: print('请输入的数字就是5') elif int(num) < 5: print('您输入的数字小于5')
以上写法就是咱们作的单选题同样,三个分支判断中只要有个成立,其他都不在执行
嵌套if
name = input('请输入名字:') if name == 'meet': age = input('请输入年龄:') if int(age) == 18: print('输入所有正确') else: print('年龄输入错误!') else: print('名字输入错误!')
这样写法很经常使用,这样咱们就能够明确的知道用户输入的名字和年龄那个是错误的,而且还作一个判断若是名字正确后在进行判断密码
8、while循环
一、基本循环
while 条件: # 循环体 # 若是条件为真,那么循环则执行 # 若是条件为假,那么循环不执行
二、break
break 用于退出当层循环
#!/usr/bin/env python #-*- coding:utf-8 -*- num = 1 while num <6: print(num) num+=1 break print("end")
三、continue
continue 用于退出当前循环,继续下一次循环
#!/usr/bin/env python #-*- coding:utf-8 -*- num = 1 while num <6: print(num) num+=1 continue print("end")