zoukankan      html  css  js  c++  java
  • Python3的简介

    Python3简介
    Python3与Python2之间是不兼容的,而且其中的差异性比较大。其实Python是linux上最常用的软件之一,但是linux目前的版本大部分还是使用Python2的,而且,在linux上依赖Python2的程序更多一些,所以 Python3 要代替 Python2 成为主流还需要几年的时间。
    我建议:

    如果是你在企业中,需要用到Python而学习Python的话,那就要看企业的应用Python的版本进行学习;
    如果想要更多的成熟解决方案,最少的bug,最稳定的应用那就用Python2 ;
    如果你是在读大学的学生,那我建议你学习Python3,等到毕业的时候或许Python已经成为了主流。
    Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。
    Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。

    Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。
    Python 是交互式语言: 这意味着,您可以在一个 Python 提示符 >>> 后直接执行代码。
    Python 是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。
    Python 是初学者的语言:Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到 WWW 浏览器再到游戏。
    Python特点
    易于学习:Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。
    易于阅读:Python代码定义的更清晰。
    易于维护:Python的成功在于它的源代码是相当容易维护的。
    一个广泛的标准库:Python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好。
    互动模式:互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断。
    可移植:基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台。
    可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。
    数据库:Python提供所有主要的商业数据库的接口。
    GUI编程:Python支持GUI可以创建和移植到许多系统调用。
    可嵌入: 你可以将Python嵌入到C/C++程序,让你的程序的用户获得"脚本化"的能力。
    Python3 下载
    Python 官网:https://www.python.org/

    Python3 基础语法
    编码
    默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串。

    标识符
    第一个字符必须是字母表中字母或下划线 _ 。
    标识符的其他的部分由字母、数字和下划线组成。
    标识符对大小写敏感。
    在 Python 3 中,可以用中文作为变量名,非 ASCII 标识符也是允许的了。

    行与缩进
    python最具特色的就是使用缩进来表示代码块,不需要使用大括号 {} 。
    缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。
    缩进不一致,会导致运行错误:

    IndentationError: unindent does not match any outer indentation level
    1
    import 与 from…import
    在 python 用 import 或者 from…import 来导入相应的模块。
    将整个模块(somemodule)导入,格式为: import somemodule
    从某个模块中导入某个函数,格式为: from somemodule import somefunction
    从某个模块中导入多个函数,格式为: from somemodule import firstfunc, secondfunc, thirdfunc
    将某个模块中的全部函数导入,格式为: from somemodule import *
    Python 数字运算
    Python 解释器可以作为一个简单的计算器,您可以在解释器里输入一个表达式,它将输出表达式的值。
    表达式的语法很直白: +, -, * 和 /, 和其它语言(如Pascal或C)里一样。

    注意:在不同的机器上浮点运算的结果可能会不一样。

    在整数除法中,除法 / 总是返回一个浮点数,如果只想得到整数的结果,丢弃可能的分数部分,可以使用运算符 //。

    注意:// 得到的并不一定是整数类型的数,它与分母分子的数据类型有关系。

    >>> 7//2
    3
    >>> 7.0//2
    3.0
    >>> 7//2.0
    3.0

    Python3 列表
    序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。

    Python有6个序列的内置类型,但最常见的是列表和元组。

    序列都可以进行的操作包括索引,切片,加,乘,检查成员。

    此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法。

    列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。

    列表的数据项不需要具有相同的类型

    创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:list = [1, 2, 3, 4, 5 ]

    Python3 元组
    Python 的元组与列表类似,不同之处在于元组的元素不能修改。

    元组使用小括号,列表使用方括号。

    元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。

    元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用:

    >>> tup1 = (50,)
    >>> type(tup1) # 加上逗号,类型为元组
    <class 'tuple'>

    Python3 字典
    字典是另一种可变容器模型,且可存储任意类型对象。

    字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 。

    键必须是唯一的,但值则不必。

    值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。

    实例:

    #!/usr/bin/python3

    dict = {'Name': 'Test', 'Age': 7, 'number': 'First'}

    print ("dict['Alice']: ", dict['Alice'])

    如上面的实例,用字典里没有的键访问数据,会输出错误如下:

    Traceback (most recent call last):
    File "test.py", line 5, in <module>
    print ("dict['Alice']: ", dict['Alice'])
    KeyError: 'Alice'

    Python3 集合
    集合(set)是一个无序的不重复元素序列。

    可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

    Python3 循环语句
    关于无限循环,我们可以通过设置条件表达式永远不为 false 来实现无限循环,实例如下:

    #!/usr/bin/python3

    var = 1
    while var == 1 : # 表达式永远为 true
    num = int(input("请输入一个数字 :"))
    print ("你输入的数字是: ", num)
    print ("Good bye!")

    执行以上脚本,输出结果如下:

    输入一个数字 :5
    你输入的数字是: 5
    输入一个数字 :

    你可以使用 CTRL+C 来退出当前的无限循环。

    无限循环在服务器上客户端的实时请求非常有用。

    Python3 迭代器与生成器
    迭代器
    迭代是Python最强大的功能之一,是访问集合元素的一种方式。

    迭代器是一个可以记住遍历的位置的对象。

    迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。

    迭代器有两个基本的方法:iter() 和 next()。

    字符串,列表或元组对象都可用于创建迭代器。

    >>> list=[1,2,3,4]
    >>> it = iter(list) # 创建迭代器对象
    >>> print (next(it)) # 输出迭代器的下一个元素
    1
    >>> print (next(it))
    2
    >>> print (next(it))
    3
    >>> print (next(it))

    生成器
    在 Python 中,使用了 yield 的函数被称为生成器(generator)。

    跟普通函数不同的是,生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器。

    在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回 yield 的值, 并在下一次执行 next() 方法时从当前位置继续运行。

    调用一个生成器函数,返回的是一个迭代器对象。

    Python3 函数
    函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

    函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。

    定义一个函数
    你可以定义一个由自己想要功能的函数,以下是简单的规则:

    函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。
    任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
    函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。 函数内容以冒号起始,并且缩进。
    return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
    函数调用
    定义一个函数:给了函数一个名称,指定了函数里包含的参数,和代码块结构。

    这个函数的基本结构完成以后,你可以通过另一个函数调用执行,也可以直接从 Python 命令提示符执行。

    如下实例调用了 printme() 函数:

    #!/usr/bin/python3

    #定义函数
    def printme( str ):
    # 打印任何传入的字符串
    print (str)
    return
    #调用函数
    printme("我要调用用户自定义函数!")
    printme("再次调用同一函数")

    以上实例输出结果:

    我要调用用户自定义函数!
    再次调用同一函数

    Python3 模块
    在前面的几个章节中我们脚本上是用 python 解释器来编程,如果你从 Python 解释器退出再进入,那么你定义的所有的方法和变量就都消失了。

    为此 Python 提供了一个办法,把这些定义存放在文件中,为一些脚本或者交互式的解释器实例使用,这个文件被称为模块。

    模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数等功能。这也是使用 python 标准库的方法。

    下面是一个使用 python 标准库中模块的例子。

    #!/usr/bin/python3
    # 文件名: using_sys.py

    import sys

    print('命令行参数如下:')
    for i in sys.argv:
    print(i)

    print(' Python 路径为:', sys.path, ' ')

    执行结果如下所示:

    $ python using_sys.py 参数1 参数2
    命令行参数如下:
    using_sys.py
    参数1
    参数2

    Python 路径为: ['/root', '/usr/lib/python3.4', '/usr/lib/python3.4/plat-x86_64-linux-gnu', '/usr/lib/python3.4/lib-dynload', '/usr/local/lib/python3.4/dist-packages', '/usr/lib/python3/dist-packages']
    Python3 File(文件) 方法
    open() 方法
    Python open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError。

    注意:使用 open() 方法一定要保证关闭文件对象,即调用 close() 方法。
    open() 函数常用形式是接收两个参数:文件名(file)和模式(mode)。

    Python3 错误和异常
    作为 Python 初学者,在刚学习 Python 编程时,经常会看到一些报错信息,在前面我们没有提及,这章节我们会专门介绍。

    Python 有两种错误很容易辨认:语法错误和异常。

    语法错误
    Python 的语法错误或者称之为解析错,是初学者经常碰到的。

    语法分析器指出了出错的一行,并且在最先找到的错误的位置标记了一个小小的箭头。

    异常
    即便 Python 程序的语法是正确的,在运行它的时候,也有可能发生错误。运行期检测到的错误被称为异常。

    大多数的异常都不会被程序处理,都以错误信息的形式展现在这里:

    实例

    >>> 10 * (1/0) # 0 不能作为除数,触发异常
    Traceback (most recent call last):
    File "<stdin>", line 1, in ?
    ZeroDivisionError: division by zero
    >>> 4 + spam*3 # spam 未定义,触发异常
    Traceback (most recent call last):
    File "<stdin>", line 1, in ?
    NameError: name 'spam' is not defined
    >>> '2' + 2 # int 不能与 str 相加,触发异常
    Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
    TypeError: can only concatenate str (not "int") to str

    异常以不同的类型出现,这些类型都作为信息的一部分打印出来: 例子中的类型有 ZeroDivisionError,NameError 和 TypeError。

    错误信息的前面部分显示了异常发生的上下文,并以调用栈的形式显示具体信息。

    Python3 面向对象
    Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的。本章节我们将详细介绍Python的面向对象编程。

    如果你以前没有接触过面向对象的编程语言,那你可能需要先了解一些面向对象语言的一些基本特征,在头脑里头形成一个基本的面向对象的概念,这样有助于你更容易的学习Python的面向对象编程。

    接下来我们先来简单的了解下面向对象的一些基本特征。

    面向对象技术简介

    类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
    方法:类中定义的函数。
    类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。
    数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据。
    方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。
    局部变量:定义在方法中的变量,只作用于当前实例的类。
    实例变量:在类的声明中,属性是用变量来表示的,这种变量就称为实例变量,实例变量就是一个用 self 修饰的变量。
    继承:即一个派生类(derived class)继承基类(base
    class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,这是模拟"是一个(is-a)"关系(例图,Dog是一个Animal)。
    实例化:创建一个类的实例,类的具体对象。
    对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。
    和其它编程语言相比,Python 在尽可能不增加新的语法和语义的情况下加入了类机制。

    Python中的类提供了面向对象编程的所有基本功能:类的继承机制允许多个基类,派生类可以覆盖基类中的任何方法,方法中可以调用基类中的同名方法。

    对象可以包含任意数量和类型的数据。

  • 相关阅读:
    进程状态
    VMware虚拟机的三种联网方法及原理
    关于C++迭代器失效
    头文件:limits.h、float.h
    正则表达式之一:元符号
    MYSQL之批量插入数据库
    PHP之如何判断数字(数字字符串不算)
    使用Process Monitor来得到程序运行参数
    Abusing the C preprocessor
    1+1还是1+1=2?
  • 原文地址:https://www.cnblogs.com/jinwenyi/p/13361139.html
Copyright © 2011-2022 走看看