目录
第一章:Python入门
1.Python介绍
1.1 简介
Python是一种解释型,面向对象的语言。由吉多·范罗苏姆(Guido van Rossum)于1989年发明,1991年正式公布。官网:www.python.org
Python单词是“大蟒蛇”的意思。但是龟叔不是喜欢蟒蛇才起这个名字而是正在追剧:英国电视喜剧片《蒙提·派森的飞行马戏团》
编程语言主要从以下几个角度为进行分类:编译型和解释性、静态语言和动态语言、强类型定义语言和弱类型定义语言。
编译和解释的区别是什么?
编译器是把源程序的每一条语句都编译成机器语言、并保存成二进制文件,这样运行时计算机可以直接以机器语言来进行此程序,速度很快;
解释器是执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运行速度是不如编译后的程序运行速度快的。
这是因为计算机不能直接认识并执行我们写的语句,它只能认识机器语言(是二进制的形式)
编译型 | 解释性 | 混合型 |
C | JavaScript | Java |
C++ | Python | C# |
Go | Ruby | |
Swift | PHP | |
Object-C | Perl | |
Pascal | Erlang |
编译型
优点:编译器一般会有预编译的过程对代码进行优化。
解释性
优点:有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(虚拟机),灵活修改代码
Python的继承是多继承的
1.2 Python2.版本和Python3.x版本的区别
- print函数
Python2中的print是一条语句,语句是一段可执行代码。如果返回值也是多个,则返回一个元组。
Python3中的print为一个函数,必须用括号括起来;函数接收参数提供返回值,可接收多个参数。
#Python2
1 print 'Python', python_version()
2 print 'Hello, World!'
3 print('Hello, World!')
4 print "text", ; print 'print more text on the same line'
```
run result:
Python 2.7.6
Hello, World!
Hello, World!
text print more text on the same line
```
#Python3
1 print('Python', python_version())
2 print('Hello, World!')
3 print("some text,", end="")
4 print(' print more text on the same line')
```
run result:
Python 3.4.1
Hello, World!
some text, print more text on the same line
```
- 整数相除
Python 2 中,整数相除默认是整型。Python 3 中,整数相除默认是浮点型。
Python 2:
>>>print("1/2",1/2)
('1/2',0) #返回的是一个元组
Python 3:
>>>print("1/2",1/2)
1/2 0.5
- 编码
Python 2 中,默认编码是 asscii ,asscii 编码是应用于拉丁字母的编码系统,程序内用中文常导致出现编码问题。在 Python 3 中采用了UTF-8作为默认编码,UTF-8 属于Unicode编码,支持大多数语言,且可变长度,空间较为节省。在 Python 3 中写代码再不用声明 # conding:utf-8
- 字符串
Python 2 中字符的类型:
str : 已经编码后的字节序列
Unicode : 编码前的文本字符
Python 3 中字符的类型:
str : 编码过的 Unicode 文本字符
bytes : 编码前的字节序列
二进制字节 Unicode字符 Python 2 str类型 Unicode类型 Python 3 bytes类型 str类型 为了避免出错,在Python 2 中应在文本字符串前面加上u.
- xrang
Python 2 中 range 返回一个列表, xrange 返回一个迭代器。
Python 3 中没有 xrange 。range 方法就相当于 Python 2 中的 xrange 方法,同时像 map 函数等,Python 3 比返回列表的函数改为了返回迭代器。
- 通过 input() 解析用户的输入
Python3中input得到的为str;Python2的input得到的为int型,Python2的raw_input得到的为str类型;统一一下:Python3中用的 input 和Python2中用的 row_input,都输入为str。
幸运的是,在Python 3 中已经解决了把用户的输入存储为一个str对象的问题。为了避免在Python 2 中的读取非字符串类型的危险行为,我们不得不适用 raw_input() 代替。
- 模块合并
python2中的StringIO和cStringIO合并为python3中的io
python2中的pickle和cPickle合并为python3中的pickle。
python2中的urllib、urllib2和urlparse合并为python3中的urllib
- 字典
python2中的dict类中的keys、values和items均返回list对象,iterkeys、itervalues和iteritems返回生成器对象。
python3中移除了list、只返回一个生成器的对象,只保留视图(生成器),但方法名为:keys、values和items。
- 类
python2中默认类是旧式类,需要显式继承新式类(object)来创建新式类。
python3中完全移除旧式类,所有类都是新式类,但仍可显式继承object类。
- 导入
python2中的包导入顺序:标准库—相对倒入(即当前目录)—绝对导入(sys.path)
python3中的包导入顺序:标准库—绝对导入(如果想要相对导入,使用from .moudel)
- 重命名模块
Python 3 | Python 2 |
Configparser | ConfigParser |
filter | itertools.ifilter |
input | raw_input |
map | itertools.imap |
range | xrange |
functools.reduce | reduce |
socketserver | SocketServer |
zip | itertools.izip |
1.3 Python的优缺点
Python的设计哲学是“优雅”、“明确”、“简单”。
优点
- 简单-----Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样,尽管这个英语的要求非常严格!Python的伪代码本质是它最大的优点之一。它使你能够专注于解决问题而不是去搞明白语言本身。
- 易学-----Python极其容易上手。Python虽然是用C语言写的,但是它摈弃了C中非常复杂的指针,简化了Python的语法。
- 免费,开源-----Python是FLOSS(自由/开放源码软件)之一。通俗的说,就是你可以自由的发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。
- 高层语言-----当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节。
- 可移植性-----由于它的开源本质,Python已经被移植在许多平台上(进过改动使它能够工作在不同平台上)。如果你不小心地避开使用依赖于系统的特性,那么你所有的Python程序无需修改就可以在下述任何平台上面运行。这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE、PocketPC、Symbian以及Google基于linux开发的android平台。
- 解释型-----这一点需要一些解释。而Python语言写的程序不需要编译成二进制代码。你可以直接从源代码运行程序。在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后把它翻译成计算机使用的机器语言并运行。事实上,由于你不在需要担心如何编译程序,如何保证转载正确等库。你仅仅需要把自己的Python程序拷贝到另外一台计算机上,它就可以工作了,这也使得Python程序更加易于移植。
- 面向对象-----Python既支持面向过程的编程也支持面向对象的编程。在“面向过程”的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。与其他主要的语言如C++何Java相比,Python一一种非常强大有简单的方式实现面向对象编程
- 可扩展性------
- 丰富的库------Python的标准库是很庞大的。它可以帮助你处理各种工作,包括正则表达式、
- 规范的代码------Python采用强制缩进的方式使用代码具有极佳的可读性。(这一点也被最近的一个大牛吐槽的八大原罪之一)
缺点:
- 运行速度慢,有速度要求的话,用C++改写关键部分吧。国内市场较小(国内以python来做主要开发的,目前只有一些web2.0公司)。但时间推移,目前很多国内软件公司,尤其是游戏公司,也开始规模使用他。【豆瓣 知乎】
- 中文资料匮乏(好的python中文资料屈指可数)。托社区的福,有几本优秀的教材已经被翻译了,但入门级教材多,高级内容还是只能看英语版。
- 框架原则太多(没有像C#这样的官方.net框架,)
1.4 程序基本格式
1 . 恰当的空格, 缩进问题
(1)逻辑首行的空白(空格和制表符)用来决定逻辑行的缩进层次,从而用来决定语句的分组
(2)语句从新行的第一列开始。
(3)缩进风格统一:
①每个缩进层次使用单个制表符或四个空格(IDE会自动将制表符设置成4个空格);
②Python 用缩进而不是 {} 表示程序块。
2 . Python 区分大小写
3 . 注释
(1)行注释
每行注释前加 “#”号。当解释器看到 “#” ,则忽略这一行 “#” 后面的内容
(2)段注释
使用三个连续单引号 (```)。当解释器看到(```),则会扫描到下一个(```),然后忽略他们之间的内容。
1.5 Python的应用场景
- web应用开发(现在 go 语言的开发效率更加 ok ,javaee做开发还是主流),Python 进场被用于web开发
- 操作系统管理,服务器运维的自动化脚本(自动化运维)
- 科学计算,数据分析
- 桌面软件(GUI)
- 服务器软件
- 游戏------一般情况下做不到
- 爬虫
- 人工智能【机器学习和深度学习】机器学习:算法;深度学习:机器视觉、自动驾驶
来源:CSDN
作者:oito
链接:https://blog.csdn.net/wls666/article/details/95946718