您现在的位置是:首页 > 技术教程 正文

Python详细教程

admin 阅读: 2024-03-20
后台-插件-广告管理-内容页头部广告(手机)

一、Python简历

Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。

Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。

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

二、 Python发展历史

Python 是由 Guido van Rossum 在八十年代末和九十年代初,在荷兰国家数学和计算机科学研究所设计出来的。

Python 本身也是由诸多其他语言发展而来的,这包括 ABC、Modula-3、C、C++、Algol-68、SmallTalk、Unix shell 和其他的脚本语言等等。

像 Perl 语言一样,Python 源代码同样遵循 GPL(GNU General Public License)协议。

现在 Python 是由一个核心开发团队在维护,Guido van Rossum 仍然占据着至关重要的作用,指导其进展。

Python 2.7 被确定为最后一个 Python 2.x 版本,它除了支持 Python 2.x 语法外,还支持部分 Python 3.1 语法。


三、Python下载

Python最新源码,二进制文档,新闻资讯等可以在Python的官网查看到:

Python官网:Welcome to Python.org

你可以在以下链接中下载 Python 的文档,你可以下载 HTML、PDF 和 PostScript 等格式的文档。

Python文档下载地址:Our Documentation | Python.org


四、 Python基础

4.1 Python标识符

在 Python 里,标识符由字母、数字、下划线组成。

在 Python 中,所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头。

Python 中的标识符是区分大小写的。

以下划线开头的标识符是有特殊意义的。以单下划线开头 _foo 的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用 from xxx import * 而导入。

以双下划线开头的 __foo 代表类的私有成员,以双下划线开头和结尾的 __foo__ 代表 Python 里特殊方法专用的标识,如 __init__() 代表类的构造函数。

Python 可以同一行显示多条语句,方法是用分号 ; 分开,如:

  1. >>> print ('hello');print ('runoob');
  2. hello
  3. runoob

 4.2Python保留字符

下面的列表显示了在Python中的保留字。这些保留字不能用作常数或变数,或任何其他标识符名称。

所有 Python 的关键字只包含小写字母。


 4.3行和缩进

学习 Python 与其他语言最大的区别就是,Python 的代码块不使用大括号 {} 来控制类,函数以及其他逻辑判断。python 最具特色的就是用缩进来写模块。

缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。

  1. if True:
  2. print ("True")
  3. else:
  4. print ("False")

4.4Python引号

Python 可以使用引号( ' )、双引号( " )、三引号( ''' 或 """ ) 来表示字符串,引号的开始与结束必须是相同类型的。

其中三引号可以由多行组成,编写多行文本的快捷语法,常用于文档字符串,在文件的特定地点,被当做注释。

  1. word = 'word'
  2. sentence = "这是一个句子。"
  3. paragraph = """这是一个段落。
  4. 包含了多个语句"""

 4.5Python注释

python中单行注释采用 # 开头。

  1. #!/usr/bin/python
  2. # -*- coding: UTF-8 -*-
  3. # 文件名:test.py
  4. # 第一个注释
  5. print ("Hello, Python!")  # 第二个注释

python 中多行注释使用三个单引号 ''' 或三个双引号 """。

  1. #!/usr/bin/python
  2. # -*- coding: UTF-8 -*-
  3. # 文件名:test.py
  4. '''
  5. 这是多行注释,使用单引号。
  6. 这是多行注释,使用单引号。
  7. 这是多行注释,使用单引号。
  8. '''
  9. """
  10. 这是多行注释,使用双引号。
  11. 这是多行注释,使用双引号。
  12. 这是多行注释,使用双引号。
  13. """

 五、Python变量类型


5.1变量赋值

Python 中的变量赋值不需要类型声明。

每个变量在内存中创建,都包括变量的标识,名称和数据这些信息。

每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。

等号 = 用来给变量赋值。

等号 = 运算符左边是一个变量名,等号 = 运算符右边是存储在变量中的值。例如:

  1. #!/usr/bin/python
  2. # -*- coding: UTF-8 -*-
  3. counter = 100 # 赋值整型变量
  4. miles = 1000.0 # 浮点型
  5. name = "John" # 字符串
  6. print counter
  7. print miles
  8. print name

以上实例中,100,1000.0和"John"分别赋值给counter,miles,name变量。

执行以上程序会输出如下结果:

  1. 100
  2. 1000.0
  3. John

 
5.2标准数据类型 


在内存中存储的数据可以有多种类型。

例如,一个人的年龄可以用数字来存储,他的名字可以用字符来存储。

Python 定义了一些标准类型,用于存储各种类型的数据。

Python有五个标准的数据类型:

  • Numbers(数字)
  • String(字符串)
  • List(列表)
  • Tuple(元组)
  • Dictionary(字典)

 5.3Python数字


数字数据类型用于存储数值。

他们是不可改变的数据类型,这意味着改变数字数据类型会分配一个新的对象。

当你指定一个值时,Number 对象就会被创建:

  1. var1 = 1
  2. var2 = 10

Python支持四种不同的数字类型:

  • int(有符号整型)
  • long(长整型,也可以代表八进制和十六进制)
  • float(浮点型
  • complex(复数)

实例

一些数值类型的实例:

Python math模块

Python 中数学运算常用的函数基本都在 math 模块、cmath 模块中。

Python math 模块提供了许多对浮点数的数学运算函数。

Python cmath 模块包含了一些用于复数运算的函数。

cmath 模块的函数跟 math 模块函数基本一致,区别是 cmath 模块运算的是复数,math 模块运算的是数学运算。

要使用 math 或 cmath 函数必须先导入:

import math

查看 math 查看包中的内容:

  1. >>> import math
  2. >>> dir(math)
  3. ['__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']
  4. >>>

 Python数学函数


5.4Python字符串

字符串或串(String)是由数字、字母、下划线组成的一串字符。

一般记为 :

s = "a1a2···an"   

它是编程语言中表示文本的数据类型。

python的字串列表有2种取值顺序:

  • 从左到右索引默认0开始的,最大范围是字符串长度少1
  • 从右到左索引默认-1开始的,最大范围是字符串开头

如果你要实现从字符串中获取一段子字符串的话,可以使用 [头下标:尾下标] 来截取相应的字符串,其中下标是从 0 开始算起,可以是正数或负数,下标可以为空表示取到头或尾。

[头下标:尾下标] 获取的子字符串包含头下标的字符,但不包含尾下标的字符。

当使用以冒号分隔的字符串,python 返回一个新的对象,结果包含了以这对偏移标识的连续的内容,左边的开始是包含了下边界。

上面的结果包含了 s[1] 的值 b,而取到的最大范围不包括尾下标,就是 s[5] 的值 f。

实例:

  1. str = 'Hello World!'
  2.  
  3. print str           # 输出完整字符串
  4. print str[0]        # 输出字符串中的第一个字符
  5. print str[2:5]      # 输出字符串中第三个至第六个之间的字符串
  6. print str[2:]       # 输出从第三个字符开始的字符串
  7. print str * 2       # 输出字符串两次
  8. print str + "TEST"  # 输出连接的字符串

 以上实例输出结果:

  1. Hello World!
  2. H
  3. llo
  4. llo World!
  5. Hello World!Hello World!
  6. Hello World!TEST

Python 列表截取可以接收第三个参数,参数作用是截取的步长,以下实例在索引 1 到索引 4 的位置并设置为步长为 2(间隔一个位置)来截取字符串:


 5.5Python列表

List(列表) 是 Python 中使用最频繁的数据类型。

列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(即嵌套)。

列表用 [ ] 标识,是 python 最通用的复合数据类型。

列表中值的切割也可以用到变量 [头下标:尾下标] ,就可以截取相应的列表,从左到右索引默认 0 开始,从右到左索引默认 -1 开始,下标可以为空表示取到头或尾。

访问列表中的值 
实例:

  1. list = [ 'runoob', 786 , 2.23, 'john', 70.2 ]
  2. tinylist = [123, 'john']
  3.  
  4. print list               # 输出完整列表
  5. print list[0]            # 输出列表的第一个元素
  6. print list[1:3]          # 输出第二个至第三个元素 
  7. print list[2:]           # 输出从第三个开始至列表末尾的所有元素
  8. print tinylist * 2       # 输出列表两次
  9. print list + tinylist    # 打印组合的列表

 输出:

  1. ['runoob', 786, 2.23, 'john', 70.2]
  2. runoob
  3. [786, 2.23]
  4. [2.23, 'john', 70.2]
  5. [123, 'john', 123, 'john']
  6. ['runoob', 786, 2.23, 'john', 70.2, 123, 'john']

更新列表


可以对列表的数据项进行修改或更新,你也可以使用append()方法来添加列表项,如下所示:

  1. list = []          ## 空列表
  2. list.append('Google')   ## 使用 append() 添加元素
  3. list.append('Runoob')
  4. print list

输出:

['Google', 'Runoob']

删除列表元素
 

  1. list1 = ['physics', 'chemistry', 1997, 2000]
  2.  
  3. print list1
  4. del list1[2]
  5. print "After deleting value at index 2 : "
  6. print list1

输出:

  1. ['physics', 'chemistry', 1997, 2000]
  2. After deleting value at index 2 :
  3. ['physics', 'chemistry', 2000]
  4. 列表截取
  5. >>>L = ['Google', 'Runoob', 'Taobao']
  6. >>> L[2]
  7. 'Taobao'
  8. >>> L[-2]
  9. 'Runoob'
  10. >>> L[1:]
  11. ['Runoob', 'Taobao']
  12. >>>

5.6 Python元组

元组是另一个数据类型,类似于 List(列表)。

元组用 () 标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。

访问元组元素
实例:

  1. tuple = ( 'runoob', 786 , 2.23, 'john', 70.2 )
  2. tinytuple = (123, 'john')
  3.  
  4. print tuple               # 输出完整元组
  5. print tuple[0]            # 输出元组的第一个元素
  6. print tuple[1:3]          # 输出第二个至第四个(不包含)的元素 
  7. print tuple[2:]           # 输出从第三个开始至列表末尾的所有元素
  8. print tinytuple * 2       # 输出元组两次
  9. print tuple + tinytuple   # 打印组合的元组

输出:

  1. ('runoob', 786, 2.23, 'john', 70.2)
  2. runoob
  3. (786, 2.23)
  4. (2.23, 'john', 70.2)
  5. (123, 'john', 123, 'john')
  6. ('runoob', 786, 2.23, 'john', 70.2, 123, 'john')

 以下对元组的操作是无效的,因为元组不允许更新,而列表是允许更新的:

  1. tuple = ( 'runoob', 786 , 2.23, 'john', 70.2 )
  2. list = [ 'runoob', 786 , 2.23, 'john', 70.2 ]
  3. tuple[2] = 1000    # 元组中是非法应用
  4. list[2] = 1000     # 列表中是合法应用
  5. 元组是不允许更新的,所以以上代码执行错误,结果如下:
  6.  
  7. Traceback (most recent call last):
  8.   File "test.py", line 6, in <module>
  9.     tuple[2] = 1000    # 元组中是非法应用
  10. TypeError: 'tuple' object does not support item assignment


修改元组


元组中的元素值是不允许修改的,但我们可以对元组进行连接组合,如下实例:

  1. tup1 = (12, 34.56)
  2. tup2 = ('abc', 'xyz')
  3.  
  4. # 以下修改元组元素操作是非法的。
  5. # tup1[0] = 100
  6.  
  7. # 创建一个新的元组
  8. tup3 = tup1 + tup2
  9. print tup3

输出:

(12, 34.56, 'abc', 'xyz')

删除元组
元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组,如下实例: 

  1. tup = ('physics', 'chemistry', 1997, 2000)
  2.  
  3. print tup
  4. del tup
  5. print "After deleting tup : "
  6. print tup

输出:

  1. ('physics', 'chemistry', 1997, 2000)
  2. After deleting tup :
  3. Traceback (most recent call last):
  4.   File "test.py", line 9, in <module>
  5.     print tup
  6. NameError: name 'tup' is not defined

 元组内置函数

5.7Python字典


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

字典的每个键值 key:value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示:

d = {key1 : value1, key2 : value2 }

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

一个简单的字典实例:

tinydict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}

访问字典中的值
把相应的键放入熟悉的方括弧,如下实例:

  1. tinydict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
  2.  
  3. print "tinydict['Name']: ", tinydict['Name']
  4. print "tinydict['Age']: ", tinydict['Age']

输出:

  1. tinydict['Name']:  Zara
  2. tinydict['Age']:  7

如果用字典里没有的键访问数据,会输出错误如下

  1. tinydict = {'Name': 'Runoob', 'Age': 7, 'Class': 'First'}
  2.  
  3. print "tinydict['Alice']: ", tinydict['Alice']

 输出:

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

修改字典
向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对如下实例:

  1. tinydict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
  2.  
  3. tinydict['Age'] = 8 # 更新
  4. tinydict['School'] = "RUNOOB" # 添加
  5. print "tinydict['Age']: ", tinydict['Age']
  6. print "tinydict['School']: ", tinydict['School']

输出:

  1. tinydict['Age']:  8
  2. tinydict['School']:  RUNOOB

删除字典元素
能删单一的元素也能清空字典,清空只需一项操作。

显示删除一个字典用del命令,如下实例:

  1. tinydict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
  2.  
  3. del tinydict['Name']  # 删除键是'Name'的条目
  4. tinydict.clear()      # 清空字典所有条目
  5. del tinydict          # 删除字典
  6.  
  7. print "tinydict['Age']: ", tinydict['Age'
  8. print "tinydict['School']: ", tinydict['School']

输出:

  1. tinydict['Age']: 
  2. Traceback (most recent call last):
  3.   File "test.py", line 10, in <module>
  4.     print "tinydict['Age']: ", tinydict['Age'
  5. NameError: name 'tinydict' is not defined

 六、Python运算符

6.1算数运算符


实例:

  1. a = 21
  2. b = 10
  3. c = 0
  4. c = a + b
  5. print "1 - c 的值为:", c
  6. c = a - b
  7. print "2 - c 的值为:", c
  8. c = a * b
  9. print "3 - c 的值为:", c
  10. c = a / b
  11. print "4 - c 的值为:", c
  12. c = a % b
  13. print "5 - c 的值为:", c
  14. # 修改变量 a 、b 、c
  15. a = 2
  16. b = 3
  17. c = a**b
  18. print "6 - c 的值为:", c
  19. a = 10
  20. b = 5
  21. c = a//b
  22. print "7 - c 的值为:", c

 输出:

  1. 1 - c 的值为: 31
  2. 2 - c 的值为: 11
  3. 3 - c 的值为: 210
  4. 4 - c 的值为: 2
  5. 5 - c 的值为: 1
  6. 6 - c 的值为: 8
  7. 7 - c 的值为: 2

6.2比较运算符

6.3赋值运算符

6.4逻辑运算符

6.5成员运算符


 七、条件语句

Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。

可以通过下图来简单了解条件语句的执行过程:

Python程序语言指定任何非0和非空(null)值为true,0 或者 null为false。

Python 编程中 if 语句用于控制程序的执行,基本形式为:

  1. if 判断条件:
  2.     执行语句……
  3. else
  4.     执行语句……

实例:

  1. # 例1:if 基本用法
  2.  
  3. flag = False
  4. name = 'luren'
  5. if name == 'python':         # 判断变量是否为 python 
  6.     flag = True              # 条件成立时设置标志为真
  7.     print 'welcome boss'     # 并输出欢迎信息
  8. else:
  9.     print name               # 条件不成立时输出变量名称

输出:

luren            # 输出结果

if 语句的判断条件可以用>(大于)、<(小于)、==(等于)、>=(大于等于)、<=(小于等于)来表示其关系。

当判断条件为多个值时,可以使用以下形式:

  1. if 判断条件1:
  2.     执行语句1……
  3. elif 判断条件2:
  4.     执行语句2……
  5. elif 判断条件3:
  6.     执行语句3……
  7. else:
  8.     执行语句4……

 实例:

  1. # 例2:elif用法
  2.  
  3. num = 5     
  4. if num == 3:            # 判断num的值
  5.     print 'boss'        
  6. elif num == 2:
  7.     print 'user'
  8. elif num == 1:
  9.     print 'worker'
  10. elif num < 0:           # 值小于零时输出
  11.     print 'error'
  12. else:
  13.     print 'roadman'     # 条件均不成立时输出

输出:

roadman        # 输出结果

八 循环语句


Python的循环语句,程序在一般情况下是按顺序执行的。

编程语言提供了各种控制结构,允许更复杂的执行路径。

循环语句允许我们执行一个语句或语句组多次,下面是在大多数编程语言中的循环语句的一般形式:

Python 提供了 for 循环和 while 循环(在 Python 中没有 do..while 循环):

8.1while循环语句

Python 编程中 while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。其基本形式为:

while 判断条件(condition):
    执行语句(statements)……

执行语句可以是单个语句或语句块。判断条件可以是任何表达式,任何非零、或非空(null)的值均为true。

当判断条件假 false 时,循环结束。

执行流程图如下:

实例:

  1. count = 0
  2. while (count < 9):
  3. print 'The count is:', count
  4. count = count + 1
  5. print "Good bye!"

输出:

  1. The count is: 0
  2. The count is: 1
  3. The count is: 2
  4. The count is: 3
  5. The count is: 4
  6. The count is: 5
  7. The count is: 6
  8. The count is: 7
  9. The count is: 8
  10. Good bye!

8.2for循环语句

Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串。

语法:

for循环的语法格式如下:

  1. for iterating_var in sequence:
  2.    statements(s)


实例:

  1. for letter in 'Python':     # 第一个实例
  2.    print("当前字母: %s" % letter)
  3.  
  4. fruits = ['banana', 'apple',  'mango']
  5. for fruit in fruits:        # 第二个实例
  6.    print ('当前水果: %s'% fruit)
  7.  
  8. print ("Good bye!")

输出:

  1. 当前字母: P
  2. 当前字母: y
  3. 当前字母: t
  4. 当前字母: h
  5. 当前字母: o
  6. 当前字母: n
  7. 当前水果: banana
  8. 当前水果: apple
  9. 当前水果: mango
  10. Good bye!

6.3break语句 

Python break语句,就像在C语言中,打破了最小封闭for或while循环。

break语句用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,也会停止执行循环语句。

实例:

  1. for letter in 'Python':     # 第一个实例
  2.    if letter == 'h':
  3.       break
  4.    print '当前字母 :', letter
  5.   
  6. var = 10                    # 第二个实例
  7. while var > 0:              
  8.    print '当前变量值 :', var
  9.    var = var -1
  10.    if var == 5:   # 当变量 var 等于 5 时退出循环
  11.       break
  12.  
  13. print "Good bye!"

输出:

  1. 当前字母 : P
  2. 当前字母 : y
  3. 当前字母 : t
  4. 当前变量值 : 10
  5. 当前变量值 : 9
  6. 当前变量值 : 8
  7. 当前变量值 : 7
  8. 当前变量值 : 6
  9. Good bye!

6.4continue语句


Python continue 语句跳出本次循环,而break跳出整个循环。

continue 语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环。

continue语句用在while和for循环中。

实例:

  1. for letter in 'Python':     # 第一个实例
  2.    if letter == 'h':
  3.       continue
  4.    print '当前字母 :', letter
  5.  
  6. var = 10                    # 第二个实例
  7. while var > 0:              
  8.    var = var -1
  9.    if var == 5:
  10.       continue
  11.    print '当前变量值 :', var
  12. print "Good bye!"

输出:

  1. 当前字母 : P
  2. 当前字母 : y
  3. 当前字母 : t
  4. 当前字母 : o
  5. 当前字母 : n
  6. 当前变量值 : 9
  7. 当前变量值 : 8
  8. 当前变量值 : 7
  9. 当前变量值 : 6
  10. 当前变量值 : 4
  11. 当前变量值 : 3
  12. 当前变量值 : 2
  13. 当前变量值 : 1
  14. 当前变量值 : 0
  15. Good bye!

 九、异常处理


捕捉异常可以使用try/except语句。

try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。

如果你不想在异常发生时结束你的程序,只需在try里捕获它。

  1. try:
  2. <语句>        #运行别的代码
  3. except <名字>
  4. <语句>        #如果在try部份引发了'name'异常
  5. except <名字><数据>:
  6. <语句>        #如果引发了'name'异常,获得附加的数据
  7. else:
  8. <语句>        #如果没有异常发生

标签:
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

在线投稿:投稿 站长QQ:1888636

后台-插件-广告管理-内容页尾部广告(手机)
关注我们

扫一扫关注我们,了解最新精彩内容

搜索
排行榜