1、Python 基础教程
Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。
2、执行Python程序
实例(Python 2.0+)
print "Hello, World!";
3、环境搭建
、、、、、
4、Python 中文编码
Python中默认的编码格式是 ASCII 格式在没修改编码格式时无法正确打印汉字所以在读取中文 时会报错解决方法为只要在文件开头加入# -*- coding: UTF-8 -*- 或者 #coding=utf-8 就了
5、Python 标识符
在python里标识符有字母、数字、下划线组成。
在python中所有标识符可以包括英文、数字以及下划线_但不能以数字开头。
python中的标识符是区分大小写的。
以下划线开头的标识符是有特殊意义的。以的标识如__init__代表类的构造函数。
6、Python保留字符
下面的列表显示了在Python中的保留字。这些保留字不能用作常数或变数或任何其他标识符名称
所有Python的关键字只包含小写字母。
and exec not
assert finally or
break for pass
class from print
continue global raise
def if return
del import try
elif in while
else is with
except lambda yield
7、行和缩进
学习Python与其他语言最大的区别就是Python的代码块不使用大括号{}来控制类函数以及其 他逻辑判断。python最具特色的就是用缩进来写模块。
缩进的空白数量是可变的但是所有代码块语句必须包含相同的缩进空白数量这个必须严格执行
8、多行语句
Python语句中一般以新行作为为语句的结束符。
但是我们可以使用斜杠 \将一行的语句分为多行显示如下所示
total = item_one + \
item_two + \
item_three
语句中包含[], {} 或 () 括号就不需要使用多行连接符。如下实例
days = ['Monday', 'Tuesday', 'Wednesday',
'Thursday', 'Friday']
9、Python 引号
python 接收单引号(' )双引号(" )三引号(''' """) 来表示字符串引号的开始与结束必须的相同类型 的。其中三引号可以由多行组成编写多行文本的快捷语法常用语文档字符串在文件的 特定地 点被当做注释。
word = 'word'
sentence = "这是一个句子。"
paragraph = """这是一个段落。
包含了多个语句"""
10、Python注释
python中单行注释采用 # 开头。多行注释使用三个单引号(''')或三个单引号(""")。
11、Python空行
函数之间或类的方法之间用空行分隔表示一段新的代码的开始。类和函数入口之间也用一行空行 分隔以突出函数入口的开始。空行与代码缩进不同空行并不是Python语法的一部分。书写时不插 入空行Python解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码便于 日后代码的维护或重构。
记住空行也是程序代码的一部分。
12、等待用户输入
raw_input("\n\nPress the enter key to exit.") 以上代码中 "\n\n"在结果输出前会输出两个新的空行。 一旦用户按下键时程序将退出。
13、同一行显示多条语句
Python可以在同一行中使用多条语句语句之间使用分号(;)分割以下是一个简单的实例import sys; x = 'foo'; sys.stdout.write(x + '\n')
14、多个语句构成代码组
缩进相同的一组语句构成一个代码块我们称之代码组。
像if、while、def和class这样的复合语句首行以关键字开始以冒号( : )结束该行之后的一行或多 行代码构成代码组我们将首行及后面的代码组称为一个子句(clause)。
if expression :
suite
elif expression :
suite
else :
suite
15、命令行参数
很多程序可以执行一些操作来查看一些基本信Python可以使用-h参数查看各参数帮助信息
16、Python 变量类型
变量存储在内存中的值。这就意味着在创建变量时会在内存中开辟一个空间。
基于变量的数据类型解释器会分配指定内存并决定什么数据可以被存储在内存中。
因此变量可以指定不同的数据类型这些变量可以存储整数小数或字符
17、变量赋值
Python中的变量不需要声明变量的赋值操作既是变量声明和定义的过程。
每个变量在内存中创建都包括变量的标识名称和数据这些信息。
每个变量在使用前都必须赋值变量赋值以后该变量才会被创建。
等号=用来给变量赋值。
等号=运算符左边是一个变量名,等号=运算符右边是存储在变量中的值。例如
counter = 100 # 赋值整型变量
miles = 1000.0 # 浮点型
name = "John" # 字符串
print counter
print miles
print name
18、多个变量赋值
Python允许你同时为多个变量赋值。例如
a = b = c = 1
以上实例创建一个整型对象值为1三个变量被分配到相同的内存空间上。
您也可以为多个对象指定多个变量。例如
a, b, c = 1, 2, "john"
以上实例两个整型对象1和2的分配给变量a和b字符串对象"john"分配给变量c。
19、标准数据类型
Python有五个标准的数据类型
Numbers数字
String字符串
List列表 [ ] 方括号
Tuple元组 ( ) 圆括号
Dictionary字典 { } 花括号
1、Numbers 数字数据类型用于存储数值。
他们是不可改变的数据类型这意味着改变数字数据类型会分配一个新的对象。
当你指定一个值时Number对象就会被创建
Python支持四种不同的数值类型
int有符号整型
long长整型[也可以代表八进制和十六进制]
float浮点型
complex复数
2、String字符串 字符串或串(String)是由数字、字母、下划线组成的一串字符。
一般记为 : s="a1a2···an"(n>=0)
它是编程语言中表示文本的数据类型。
python的字串列表有2种取值顺序:
从左到右索引默认0开始的最大范围是字符串长度少1
从右到左索引默认-1开始的最大范围是字符串开头
如果你的实要取得一段子串的话可以用到变量[头下标:尾下标]就可以截取相应的字符串 其中下标是从0开始算起可以是正数或负数下标可以为空表示取到头或尾。
比如:
s = 'ilovepython'
s[1:5]的结果是love。。
当使用以冒号分隔的字符串python返回一个新的对象结果包含了以这对偏移标识 的连续的内容左边的开始是包含了下边界。
上面的结果包含了s[1]的值l而取到的最大范围不包括上边界就是s[5]的值p加号+ 是字符串连接运算符星号*是重复操作。如下实例
3、List ( ) 列表
List列表 是 Python 中使用最频繁的数据类型。
列表可以完成大多数集合类的数据结构实现。它支持字符数字字符串甚至可以包含列表 所谓嵌套。
列表用[ ]标识。是python最通用的复合数据类型。看这段代码就明白。
列表中的值得分割也可以用到变量[头下标:尾下标]就可以截取相应的列表从左到右索引 默认0开始的从右到左索引默认-1开始下标可以为空表示取到头或尾。
加号+是列表连接运算符星号*是重复操作。如下实例
#!/usr/bin/python
# -*- coding: UTF-8 -*-
list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']
print list # 输出完整列表
print list[0] # 输出列表的第一个元素
print list[1:3] # 输出第二个至第三个的元素
print list[2:] # 输出从第三个开始至列表末尾的所有元素
print tinylist * 2 # 输出列表两次
print list + tinylist # 打印组合的列表
以上实例输出结果
['abcd', 786, 2.23, 'john', 70.2]
abcd
[786, 2.23]
[2.23, 'john', 70.2]
[123, 'john', 123, 'john']
['abcd', 786, 2.23, 'john', 70.2, 123, 'john']
4)、Python元组 ( )
元组是另一个数据类型类似于List列表。
元组用"()"标识。内部元素用逗号隔开。但是元素不能二次赋值相当于只读列表。
tuple = ( 'abcd', 786 , 2.23, 'john', 70.2 )
tinytuple = (123, 'john')
print tuple # 输出完整元组
print tuple[0] # 输出元组的第一个元素
print tuple[1:3] # 输出第二个至第三个的元素
print tuple[2:] # 输出从第三个开始至列表末尾的所有元素
print tinytuple * 2 # 输出元组两次
print tuple + tinytuple # 打印组合的元组
以上实例输出结果
('abcd', 786, 2.23, 'john', 70.2)
abcd
(786, 2.23)
(2.23, 'john', 70.2)
(123, 'john', 123, 'john')
('abcd', 786, 2.23, 'john', 70.2, 123, 'john')
以下是元组无效的因为元组是不允许更新的。而列表是允许更新的
tuple = ( 'abcd', 786 , 2.23, 'john', 70.2 )
list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
tuple[2] = 1000 # 元组中是非法应用
list[2] = 1000 # 列表中是合法应用
5、Python元字典 { }
字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对 象结合字典是无序的对象集合。
两者之间的区别在于字典当中的元素是通过键来存取的而不是通过偏移存取。
字典用"{ }"标识。字典由索引(key)和它对应的值value组成。
dict = {}
dict['one'] = "This is one"
dict[2] = "This is two"
tinydict = {'name': 'john','code':6734, 'dept': 'sales'}
print dict['one'] # 输出键为'one' 的值
print dict[2] # 输出键为 2 的值
print tinydict # 输出完整的字典
print tinydict.keys() # 输出所有键
print tinydict.values() # 输出所有值
20、 Python 运算符
Python语言支持以下类型的运算符:
算术运算符
比较关系运算符
赋值运算符
逻辑运算符
位运算符
成员运算符
身份运算符
运算符优先级
1)、算术运算符
以下假设变量a为10变量b为20
运算符 描述 实例
+ 加 - 两个对象相加 a + b 输出结果 30
- 减 - 得到负数或是一个数减去另一个数 a - b 输出结果 -10
* 乘 - 两个数相乘或是返回一个被重复若干次的字符串 a * b 输出结果 200
/ 除 - x除以y b / a 输出结果 2
% 取模 - 返回除法的余数 b % a 输出结果 0
** 幂 - 返回x的y次幂 a**b 为10的20次方 输出结果 1000000000000000000
// 取整除 - 返回商的整数部分 9//2 输出结果 4 , 9.0//2.0 输出结果 4.0
2、Python比较运算符
运算符 描述 实例
== 等于 - 比较对象是否相等 (a == b) 返False。
!= 不等于 - 比较两个对象是否不相等 (a != b) 返回 true.
<> 不等于 - 比较两个对象是否不相等 (a <> b) 返回 true。这个运算符类似 != 。
> 大于 - 返回x是否大于y (a > b) 返回 False。
< 小于 - 返回x是否小于y。所有比较运算符返回1表示真返回0表示假。这分别与特殊的变量True和False等价。 注意这些变量名的大写。 (a < b) 返回 true。
>= 大于等于 - 返回x是否大于等于y。 >= b) 返回 False。
<= 小于等于 - 返回x是否小于等于y。 <= b) 返回 true。
3、Python赋值运算符
以下假设变量a为10变量b为20
运算符 描述 实例
= 简单的赋值运算符 c = a + b 将 a + b 的运算结果赋值为 c
+= 加法赋值运算符 c += a 等效于 c = c + a
-= 减法赋值运算符 c -= a 等效于 c = c - a
*= 乘法赋值运算符 c *= a 等效于 c = c * a
/= 除法赋值运算符 c /= a 等效于 c = c / a
%= 取模赋值运算符 c %= a 等效于 c = c % a
**= 幂赋值运算符 c **= a 等效于 c = c ** a
//= 取整除赋值运算符 c //= a 等效于 c = c // a
4、Python位运算符
位运算符是把数字看作二进制来进行计算的。Python中的按位运算法则如下
运算符 描述 实例
& 按位与运算符 (a & b) 输出结果 12 二进制解释 0000 1100
| 按位或运算符 (a | b) 输出结果 61 二进制解释 0011 1101
^ 按位异或运算符 (a ^ b) 输出结果 49 二进制解释 0011 0001
~ 按位取反运算符 (~a ) 输出结果 -61 二进制解释 1100 0011 在一个有符号二进 制数的补码形式。
<< 左移动运算符 a << 2 输出结果 240 二进制解释 1111 0000
>> 右移动运算符 a >> 2 输出结果 15 二进制解释 0000 1111
5、Python逻辑运算符
Python语言支持逻辑运算符以下假设变量a为10变量b为20
运算符 描述 实例
and 布尔"与" 如果x为Falsex and y返回False否则它返回y的计算值。 (a and b) 返回 true。
or 布尔"或" 如果x是True它返回True否则它返回y的计算值。 (a or b) 返回 true。
not 布尔"非" - 如果x为True返回False。如果x为False它返回True。 not(a and b) 返回 false。
6、Python成员运算符
除了以上的一些运算符之外Python还支持成员运算符测试实例中包含了一系列的成员包 括 字符串列表或元组。
运算符 描述 实例
in 如果在指定的序列中找到值返回True否则返回False。 x 在 y序列中 , 如果x在y序列中返回True。
not in 如果在指定的序列中没有找到值返回True否则返回False。 x 不在 y序列中 , 如果x不在y序列中返回True。
7)、Python身份运算符
身份运算符用于比较两个对象的存储单元
运算符 描述 实例
is is是判断两个标识符是不是引用自一个对象 x is y, 如果 id(x) 等于 id(y) , is 返回结果 1
is not is not是判断两个标识符是不是引用自不同对象 x is not y, 如果 id(x) 不等于 id(y). is not 返回结果 1
8、Python运算符优先级
以下表格列出了从最高到最低优先级的所有运算符
运算符 描述
** 指数 (最高优先级)
~ + - 按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
* / % // 乘除取模和取整除
+ - 加法减法
>> << 右移左移运算符
& 位 'AND'
^ | 位运算符
<= < > >= 比较运算符
<> == != 等于运算符
= %= /= //= -= += *= **= 赋值运算符
is is not 身份运算符
in not in 成员运算符
not or and 逻辑运算符
21、Python 条件语句
Python条件语句是通过一条或多条语句的执行结果True或者False来决定执行的代码块。
Python程序语言指定任何非0和非空null值为true0 或者 null为false。
Python 编程中 if 语句用于控制程序的执行基本形式为
1、if 判断条件
执行语句……
else
执行语句……
2、if 语句的判断条件可以用>大于、<(小于)、==等于、>=大于等于、<=小于等于来表示其关系。
当判断条件为多个值是可以使用以下形式
if 判断条件1:
执行语句1……
elif 判断条件2:
执行语句2……
elif 判断条件3:
执行语句3……
else:
执行语句4……
3、由于 python 并不支持 switch 语句所以多个条件判断只能用 elif 来实现
如果判断需要多个条件需同时判断时可以使用 or 或表示两个条件有一个成立时判断条件成功
使用 and 与时表示只有两个条件同时成立的情况下判断条件才成功
4)、当if有多个条件时可使用括号来区分判断的先后顺序括号中的判断优先执行
此外 and 和 or 的优先级低于>大于、<小于等判断符号
即大于和小于在没有括号的情况下会比与或要优先判断。
5、你也可以在同一行的位置上使用if条件判断语句如下实例
22、Python 循环语句
本章节将向大家介绍Python的循环语句程序在一般情况下是按顺序执行的。
编程语言提供了各种控制结构允许更复杂的执行路径。
循环语句允许我们执行一个语句或语句组多次下面是在大多数编程语言中的循环语句的一般形式
循环类型 描述
while 循环 在给定的判断条件为 true 时执行循环体否则退出循环体。
for 循环 重复执行语句
嵌套循环 你可以在while循环体中嵌套for循环
1、While循环语句
1、Python 编程中 while 语句用于循环执行程序即在某条件下循环执行某段程序以处理需要重复处理的相同任务。
while 判断条件
执行语句……
执行语句可以是单个语句或语句块。判断条件可以是任何表达式任何非零、或非空null的值均为true。当判断条件假false时循环结束。
var = 0
while (var < 10):
print 'The count is:' ,var
var = var + 1
print "Good bye"
2、while 语句时还有另外两个重要的命令 continuebreak 来跳过循环continue 用于跳过该次循环break 则是用于退出循环此外"判断条件"还可以是个常值表示循环必定成立具体用法如下
3、如果条件判断语句永远为 true循环将会无限的执行下去如下实例
2、Python for 循环语句
1、Python for循环可以遍历任何序列的项目如一个列表或者一个字符串。
2、另外一种执行循环的遍历方式是通过索引
3、在 python 中for … else 表示这样的意思for 中的语句和普通的没有区别else 中的语句会在循环正常执行完即 for 不是通过 break 跳出而中断的的情况下执行while … else 也是一样。
3、Python 循环嵌套
Python 语言允许在一个循环体里面嵌入另一个循环。
1、ython for 循环嵌套语法
for iterating_var in sequence:
for iterating_var in sequence:
statements(s)
statements(s)
2、Python while 循环嵌套语法
while expression:
while expression:
statement(s)
statement(s)
3、你可以在循环体内嵌入其他的循环体如在while循环中可以嵌入for循环 反之你可以在for循环中嵌入while循环。
i = 2
while(i < 100):
j = 2
while(j <= (i/j)):
if not(i%j): break
j = j + 1
if (j > i/j) : print i, " 是素数"
i = i + 1
print "Good bye!"
23、Python break 语句
Python break语句就像在C语言中打破了最小封闭for或while循环。
break语句用来终止循环语句即循环条件没有False条件或者序列还没被完全递归完也会停止执行循环语句。
break语句用在while和for循环中。
如果您使用嵌套循环break语句将停止执行最深层的循环并开始执行下一行代码。
24、Python continue 语句
Python continue 语句跳出本次循环而break跳出整个循环。
continue 语句用来告诉Python跳过当前循环的剩余语句然后继续进行下一轮循环。
continue语句用在while和for循环中。
25、Python pass 语句
Python pass是空语句是为了保持程序结构的完整性。
passass 不做任何事情一般用做占位语句。
Python 语言 pass 语句语法格式如下
for letter in 'Python':
if letter == 'h':
pass
print '这是 pass 块'
print '当前字母 :', letter
print "Good bye!"
26、Python函数
函数是组织好的可重复使用的用来实现单一或相关联功能的代码段。
函数能提高应用的模块性和代码的重复利用率。你已经知道Python提供了许多内建函数比如print()。但你也可以自己创建函数这被叫做用户自定义函数。
1、定义一个函数
函数代码块以def关键词开头后接函数标识符名称和圆括号()。
任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
函数内容以冒号起始并且缩进。
Return[expression]结束函数选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
2、函数调用
定义一个函数只给了函数一个名称指定了函数里包含的参数和代码块结构。
这个函数的基本结构完成以后你可以通过另一个函数调用执行也可以直接从Python提示符执行。
如下实例调用了printme函数
3、所有参数自变量在Python里都是按引用传递。如果你在函数里修改了参数那么在调用这 个函数的函数里原始的参数也被改变了。
4、参数
以下是调用函数时可使用的正式参数类型
必备参数
命名参数
缺省参数
不定长参数
必备参数
必备参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样
命名参数
命名参数和函数调用关系紧密调用方用参数的命名确定传入的参数值。你可以跳过不传的参数或者乱序传参因为Python解释器能够用参数名匹配参数值。用命名参数调用printme()函数
缺省参数
调用函数时缺省参数的值如果没有传入则被认为是默认值。下例会打印默认的age如果age没有被传入
def printme ( name, age, code,dp='TC' ):
print 'name:',name
print 'age:', age
print 'code:', code
print 'dp:',dp
printme( name='zhixinping', age=31 , code=123 )
printme( name='pakrqi', age=30 , code=34 )
printme( name='sina', age=29 , code=45 )
printme( name='163', age=28 , code=46 )
不定长参数
你可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数和上述2种参数不同声明时不会命名。加了星号*的变量名会存放所有未命名的变量参数。选择不多传参数也可
5、匿名函数
python 使用 lambda 来创建匿名函数。
lambda只是一个表达式函数体比def简单很多。
lambda的主体是一个表达式而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
lambda函数拥有自己的名字空间且不能访问自有参数列表之外或全局名字空间里的参数。
虽然lambda函数看起来只能写一行却不等同于C或C++的内联函数后者的目的是调用小函数时不占用栈内存从而增加运行效率。
6、return语句
return语句[表达式]退出函数选择性地向调用方返回一个表达式。不带参数值的return语句返回None
27 Python 模块
模块让你能够有逻辑地组织你的Python代码段。
把相关的代码分配到一个 模块里能让你的代码更好用更易懂。
模块也是Python对象具有随机的名字属性用来绑定或引用。
简单地说模块就是一个保存了Python代码的文件。模块能定义函数类和变量。模块里也能包含可 执行的代码。