zoukankan      html  css  js  c++  java
  • Python笔记001-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)
    • 服务器软件
    • 游戏------一般情况下做不到
    • 爬虫
    • 人工智能【机器学习和深度学习】机器学习:算法;深度学习:机器视觉、自动驾驶
  • 相关阅读:
    自学软件测试获取学习资源途径有哪些?
    微信发红包-测试分析
    软件测试初级经验
    面试
    电商项目
    LoadRunner11的安装流程+破解+汉化+下载
    Oracle和Mysql操作上的一些区别
    Android模拟器,ADB命令
    logging
    heapq
  • 原文地址:https://www.cnblogs.com/oito/p/11184034.html
Copyright © 2011-2022 走看看