1、Python的简介java
1.什么是python?
python
Python(发音:[ 'paiθ(ə)n; (US) 'paiθɔn ]),是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具备十多年的发展历史,成熟且稳定。这种语言具备很是简捷而清晰的语法特色,适合完成各类高层任务,几乎能够在全部的操做系统中运行。git
①可扩充性。新的内置模块(module)能够用C 或 C++写成,而咱们也可为现成的模块加上Python的接口;程序员
②清晰的语言。由于它的做者在设计它的时候,总的指导思想是,对于一个特定的问题,只要有一种最好的方法来解决就行了。github
③Python的缩进规则。它的做者有意的设计限制性很强的语法,使得很差的编程习惯(例如if语句的下一行不向右缩进)都不能经过编译。这样有意的强制程序员养成良好的编程习惯。一个模块的界限,彻底是由每行的首字符在这一行的位置来决定的(而C语言是用一对花括号{}来明确的定出模块的边界的,与字符的位置毫无关系)。shell
①运行效率低下;编程
②多线程支持欠佳 ;ruby
③独特的语法。这也许不该该被称为局限,可是它用缩进来区分语句关系的方式仍是给不少初学者带来了困惑。 即使是颇有经验的Python程序员,也可能陷入陷阱当中。最多见的状况是tab和空格的混用会致使错误,而这是用肉眼没法分别的。 网络
④无类型。做为一种动态语言,随时随地建立和使用变量是Python给咱们带来的巨大的便利。可是它也会使得程序不严谨,某些错误只有在运行中才可能出现。因此,使用Python编程的时候,要对类型作到内心有数。多线程
2.python的过去
Python的创始人为Guido van Rossum。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为 ABC 语言的一种继承。之因此选Python(大蟒蛇的意思)做为程序的名字,是由于他是一个Monty Python的飞行马戏团的爱好者。就这样,Python在Guido手中诞生了。实际上,第一个实现是在Mac机上。能够说,Python是从ABC发展起来,主要受到了Modula-3(另外一种至关优美且强大的语言,为小型团体所设计的)的影响。而且结合了Unix shell和C的习惯。
3.python的如今
如图所示,截止17年4月,最新的TIOBE排行榜,python位列第五。
Python能够应用于众多领域,如:数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域。目前业内几乎全部大中型互联网企业都在使用Python,如:Youtube、Dropbox、BT、Quora(中国知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、腾讯、汽车之家、美团等。互联网公司普遍使用Python来作的事通常有:自动化运维、自动化测试、大数据分析、爬虫、Web 等。
4.python与其余语言的关系
Pythond VS C#
① Python跨平台,能够运行在Linux、weindows等平台
② Pythond开源,C#则相反
③Python是解释型语言,C#须要编译,因此Python运行要慢点
Pythond VS Java
Python更简洁,Java过于庞大复杂,语法不少
Python VS C C++
Python更容易学习,语法简单易懂,但他们一般扮演不一样的角色,Python是一种脚本语言,C和C++一般要和底层硬件打交道
Python VS Ruby Perl
与ruby不一样,OOP对于Python是可选的,因此Python不会强制用户选择OOP开发
C语言: 代码编译获得机器码 ,机器码在处理器上直接执行,每一条指令控制CPU工做(C语言--》机器码--》计算机)
Python在执行时,首先会将.py文件中的源代码编译成Python编程语言的byte code(字节码),而后再由Python Virtual Machine来执行这些编译好的byte code。
其余语言: 代码编译获得字节码 ,虚拟机执行字节码并转换成机器码再后在处理器上执行。(其余高级语言--》字节码--》机器码--》计算机)
5.python的种类
以上除PyPy以外,其余的Python的对应关系和执行流程以下:
PyPy,在Python的基础上对Python的字节码进一步处理,从而提高执行速度!
2、Python的基础
1.python的安装(MAC)
可参考网站
https://github.com/pyenv/pyenv
https://github.com/pyenv/pyenv-virtualenv
https://www.cnhzz.com/pyenv_virtualenv_virtaulenvwrapper/
pyenv virtualenv 3.5.3 py3 #建立一个 Python 版本为 3.5.3 的环境, 环境叫作 py3 pyenv activate py3 #激活 py3 这个环境, 此时 Python 版本自动变为 3.5.3, 且是独立环境 pyenv deactivate #离开已经激活的环境
2.第一句Python代码
在 /home/dev/ 目录下建立 hello.py 文件,内容以下:
1 print "hello,world"
执行 hello.py 文件,即: python /home/dev/hello.py
python内部执行过程以下:
3.解释器
上一步中执行 python /home/dev/hello.py 时,明确的指出 hello.py 脚本由 python 解释器来执行。
若是想要相似于执行shell脚本同样执行python脚本,例: ./hello.py
,那么就须要在 hello.py 文件的头部指定解释器,以下:
1 #!/usr/bin/env python
2 print "hello,world"
如此一来,执行: ./hello.py
便可。
补充:
①执行前需给予 hello.py 执行权限,chmod 755 hello.py
②脚本语言的第一行,目的就是指出,你想要你的这个文件中的代码用什么可执行程序去运行它,就这么简单
#!/usr/bin/Python是告诉操做系统执行这个脚本的时候,调用/usr/bin下的python解释器;
#!/usr/bin/env python这种用法是为了防止操做系统用户没有将python装在默认的/usr/bin路径里。当系统看到这一行的时候,首先会到env设置里查找python的安装路径,再调用对应路径下的解释器程序完成操做。
#!/usr/bin/python至关于写死了python路径;
#!/usr/bin/env python会去环境设置寻找python目录,推荐这种写法。
4.编码
python解释器在加载 .py 文件中的代码时,会对内容进行编码。
注:python3默认utf-8,python2默认是ASCII
ASCII(American Standard Code for Information Interchange),是一种单字节的编码。主要用于显示现代英语和其余西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256,因此,ASCII码最多只能表示 256 个符号。
显然ASCII码没法将世界上的各类文字和符号所有表示,好比中文,因此,就须要新出一种能够表明全部字符和符号的编码,即:Unicode
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每一个字符设定了统一而且惟一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536,
注:此处说的的是至少2个字节(16位),可能更多
gbk,gb2312 ,只适用于中国,支持繁体,中文须要2个字节表示
UTF-8,是对Unicode编码的压缩和优化,遵循能用最少的表示就用最少的表示,他再也不使用最少使用2个字节,而是将全部的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...
因此,在写代码时,为了避免出现乱码,推荐使用UTF-8,会加入 # -*- coding: utf-8 -*-
即
#!/usr/bin/env python # -*- coding: utf-8 -*-
print "你好,世界"
5. IDE
pycharm
- 使用
1. new project
2. new 建立文件夹
3. new 建立py文件
4. 在py文件中右键, run xx.py
- 文件编码
- 文件模板
- 改变大小
6.注释
当行注视:# 被注释内容
多行注释:""" 被注释内容 """
选中注释,ctrl+?
7.pyc文件
执行Python代码时,若是导入了其余的 .py 文件,那么,执行过程当中会自动生成一个与其同名的 .pyc 文件,该文件就是Python解释器编译以后产生的字节码。
注:代码通过编译能够产生字节码;字节码经过反编译也能够获得代码。