Python3的简介

Python3简介

Python3与Python2之间是不兼容的,并且其中的差别性比较大。其实Python是linux上最经常使用的软件之一,可是linux目前的版本大部分仍是使用Python2的,并且,在linux上依赖Python2的程序更多一些,因此 Python3 要代替 Python2 成为主流还须要几年的时间。
我建议:
php

  1. 若是是你在企业中,须要用到Python而学习Python的话,那就要看企业的应用Python的版本进行学习;
  2. 若是想要更多的成熟解决方案,最少的bug,最稳定的应用那就用Python2 ;
  3. 若是你是在读大学的学生,那我建议你学习Python3,等到毕业的时候或许Python已经成为了主流。

Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。
Python 的设计具备很强的可读性,相比其余语言常用英文关键字,其余语言的一些标点符号,它具备比其余语言更有特点语法结构。
python

  • Python 是一种解释型语言: 这意味着开发过程当中没有了编译这个环节。相似于PHP和Perl语言。
  • Python 是交互式语言: 这意味着,您能够在一个 Python 提示符 >>> 后直接执行代码。
  • Python 是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。
  • Python 是初学者的语言:Python 对初级程序员而言,是一种伟大的语言,它支持普遍的应用程序开发,从简单的文字处理到 WWW 浏览器再到游戏。

Python特色

  1. 易于学习:Python有相对较少的关键字,结构简单,和一个明肯定义的语法,学习起来更加简单。
  2. 易于阅读:Python代码定义的更清晰。
  3. 易于维护:Python的成功在于它的源代码是至关容易维护的。
  4. 一个普遍的标准库:Python的最大的优点之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好。
  5. 互动模式:互动模式的支持,您能够从终端输入执行代码并得到结果的语言,互动的测试和调试代码片段。
  6. 可移植:基于其开放源代码的特性,Python已经被移植(也就是使其工做)到许多平台。
  7. 可扩展:若是你须要一段运行很快的关键代码,或者是想要编写一些不肯开放的算法,你可使用C或C++完成那部分程序,而后从你的Python程序中调用。
  8. 数据库:Python提供全部主要的商业数据库的接口。
  9. GUI编程:Python支持GUI能够建立和移植到许多系统调用。
  10. 可嵌入: 你能够将Python嵌入到C/C++程序,让你的程序的用户得到"脚本化"的能力。

Python3 下载

Python 官网:https://www.python.org/linux

Python3 基础语法

编码

默认状况下,Python 3 源码文件以 UTF-8 编码,全部字符串都是 unicode 字符串。程序员

标识符

  • 第一个字符必须是字母表中字母或下划线 _ 。
  • 标识符的其余的部分由字母、数字和下划线组成。
  • 标识符对大小写敏感。

在 Python 3 中,能够用中文做为变量名,非 ASCII 标识符也是容许的了。算法

行与缩进

  • python最具特点的就是使用缩进来表示代码块,不须要使用大括号 {} 。
  • 缩进的空格数是可变的,可是同一个代码块的语句必须包含相同的缩进空格数。

缩进不一致,会致使运行错误shell

IndentationError: unindent does not match any outer indentation level

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))
4

生成器
在 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('\n\nPython 路径为:', sys.path, '\n')

执行结果以下所示:

$ 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中的类提供了面向对象编程的全部基本功能:类的继承机制容许多个基类,派生类能够覆盖基类中的任何方法,方法中能够调用基类中的同名方法。

对象能够包含任意数量和类型的数据。

相关文章
相关标签/搜索