Python笔记(1) python入门

谁都会走 提交于 2019-11-27 04:49:05

目录

 

第一章:Python入门

1.Python介绍

1.1 简介

1.2 Python2.版本和Python3.x版本的区别   

1.3 Python的优缺点

 1.4 程序基本格式

1.5 Python的应用场景


第一章: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)
  • 服务器软件
  • 游戏------一般情况下做不到
  • 爬虫
  • 人工智能【机器学习和深度学习】机器学习:算法;深度学习:机器视觉、自动驾驶
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!