(一)初识
1.Python三大优点:简单、功能强大、支持面向对象
2.Python的一些特点:
·大小严格区分
·简单、易学、支持面向对象
·开源
·库非常丰富
·标准库:正则表达式标准库
·非标准库:wxpython库
·跨平台使用
·解释性语言(解释器—字符码:直接运行)
·高级语言
(二)语法基础
1.常量与变量
(1)常量:一旦绑定,就不能更改
(2)
class _const(object):
class ConstError(TypeError):pass
def __setattr__(self, name, value):
if self.__dict__.has_key(name):
raise self.ConstError, "Can't rebinf const(%s)" % name
self.__dict__[name] = value
def __delattr__(self, name):
if name in self.__dict__:
raise self.ConstError, "Can't unbind const(%s)" % name
raise NameError, name
import sys
sys.modules[__name__] = _const()
上面是定义常量,需将上面内容以const作为文件名保存在python27的lib目录下
import const
const.value = 10
const.value =100(对常量赋值,导致下面的error)
print const.value
ConstError: Can’t rebinf const(value)
(3)变量
2.数与字符串
(1)数的类型(5种)
·int
·long 888888l
·float
·bool 只有True、False
·complex
(2)什么是字符串
·如:’hello’、”my python”、”2+3”
(3)引号的使用与区别
·单引号
a = ‘It\’s’
b = “It’s”
·双引号
·三引号(换行、保持原格式)
c = ’’’H
Ell
O’’’
(4)转义字符
(5)自然字符串(r””:是保持转义字符)
print r”Hell\no”
输出:Hell\no
(6)字符串的重复
Print “Hello”*20
(7)子字符串
·索引运算符从0开始索引
·切片运算符[a:b]是指从第a下标开始到第b-1下标(首位为0)
C = “jikexueyuan”
C1 = c[0]
C2 = c[1:3]
【例子】:
#coding=utf-8
#单引号
print 'It\'s a smart dress'
#双引号
print "It's a smart dress"
#三引号
print '''
I
t's
a
pen '''
#转义字符
print "\nI\nam\n"
#自然字符串
print r"I\n"
#字符串的重复
print '\nI can tell'*10
#子字符串
a = "I' can do it well"
b = a[0]
c = a[:2]
d = a[2:]
print b,c,d
【结果】
It's a smart dress
It's a smart dress
I
t's
a
pen
I
am
I\n
I can tell
I can tell
I can tell
I can tell
I can tell
I can tell
I can tell
I can tell
I can tell
I can tell
I I' can do it well
3.数据类型(Python中没有数组的概念)
(1)基本数据类型
·数
·字符串
(2)列表(列表中的元素是有序的)
(3)元组
区分列表和元组:
①列表里面买的元素的值可以修改,元组里面元素的值不能修改,只能读取
②列表:[], 元组:()
③a = [“”,””],b ={“”,””}
例子:
#coding=utf-8(IDE下默认为#_*_coding:cp936_*_,添加这一行会导致乱码)
a=["林林","标标"]
print a[0]
b=("小小","鱼鱼")
a[0]="小小"
print a[0],b[1]
结果:>>>
鏋楁灄
灏忓皬 楸奸奔
a=["林林","标标"]
print a[0]
b=("小小","鱼鱼")
a[0]="小小"
print a[0],b[1]
结果:
林林
小小 鱼鱼
(4)集合
①两个功能:建立关系、消除重复元素
②格式:set(元素)
·交集(a&b)
·并集(a|b)
·差集(a-b)
·去除重复的元素(set(a))
例子:
a = set("aaaabbbcdmnop")
b = set("abcd")
c = a&b
d = a|b
e = a-b
f = set(a)
print c,d,e,f
(5)字典(也叫关联数组)
·格式:zidian={‘name’:’weiwei’,’home’:’guilin’}
·输出某一项:print k[“name”],也可以通过这种方法添加字典里面的项目
例子:
z={"name":"戴安娜","home":"上海"}
print z["name"]
z["interest"]="音乐"
print z["interest"]
4.标识符
(1)什么是标识符(变量与常量的名称)
(2)标识符命名原则
·首字符:字母或下划线
·字母、下划线、数字
(3)关键字(保留字:28种)
And、elif、global、or、else、pass、break、continue、import、class、return、for、while
5.对象
·对象
·pickle腌制
#pickle腌制
import pickle
#dumps(onject)将对象序列化
#loads(string)将对象原样恢复,并且对象类型也恢复为原来的格式
#dump(object,file)将对象存储到文件里面序列化
#load(object,file)将存储在文件里面的数据恢复
lista=["mingyue","yueliang"]
listb=pickle.dumps(lista)
print listb
listc = pickle.loads(listb)
print listc
group1=("wanmei","rensheng")
f1=file('pickle.py','wb')
pickle.dump(group1,f1,True)
f1.close()
f2 = file('pickle.py','rb')
t = pickle.load(f2)
print t
f2.close()
6.行与缩进
(1)了解逻辑行与物理行
·意义上的行数
·实际看到的行数
例子:
#以下是2个物理行
print "abc"
print "123"
#以下是1个物理行,2个逻辑行
print "abc";print"123"
#以下是1个逻辑行,2个物理行
print '''
12345'''
(2)行中分号的使用
(3)行连接
#行连接
print "学习\
python"
(4)什么是缩进(2种:tab格、空格)
(5)如何缩进(while、for)
(6)注释(#)
(三)运算符(优先级)及表达式
1.运算符
·+:字符串连接
·not\and\or
2.优先级
3.表达式
①值、变量和运算符组成的整体
②
1.运算符
·+:字符串连接
·not\and\or
2.优先级
3.表达式
①值、变量和运算符组成的整体
②>>> a = 7
>>> "My"
'My'
>>> a = 'OK'
>>> a
'OK'
>>> a = "OK"
>>> a
'OK'
>>> print 'OK'
OK
>>> print "OK"
OK
>>>
③表达式执行结果和print执行结果的差别(如上)
(四)控制流
1.Python的三种控制流
'''Python有三种控制流类型:顺序结构、分支结构、循环结构'''
#重复执行一遍程序(法一)
i = 0
print i
i += 1
print i
i = 0
print i
i += 1
print i
#循环控制流(法二)
for k in range(0,5):
i = 0
print i
i += 1
print i
a = 1
while a:
print "Hello"
a -= 1
#控制流的分支结构
xiaoming = "hungry"
if xiaoming == "full":
print "宝宝好乖"
else:
print "宝宝好皮"
分支结构-if语句
'''
if语句用判断选择执行的语句块
'''
a = 1
if a ==1:
print "hello"
a = 0
if a ==0:
print "Man"
else:
print "Woman"
score = 100
if score >= 90:
print "优秀"
elif score >= 60:
print "合格"
else:
print "还得努力"
'''
while语句:用来控制一段语句重复执行
'''
#死循环:(占用CPU)
a = True
while a:
print "ABC"
#while语句嵌套使用
a = 0
while a<2:
if a<=1:
print a
'''
1.range函数的使用
2.带嵌套的for语句
'''```
for语句的格式:
for i in 集合:
执行该部分
else:
执行该部分
for i in [1,3,5,6]:
print i
for i in range(1,5):
print i
for i in range(0,3):
if i%2==0:
print i
else:
print "奇数"
a = range(0,5)
print a
”’步长:2”’
b = range(0,10,2)
print b
Break语句:
”’
break语句是强制停止循环的意思
”’
#break语句在while循环中
a =1
while a:
print a
a += 1
if a == 10:
break
#break语句在for循环中
for i in range(5,9):
print i
if i>8:
Break
#break语句在双层循环语句
a = 10
while a <= 12:
a += 1
for i in range(1,7):
print i
if i == 5:
break
if a==11:
Break
#continue语句:强制停止本次循环,直接跳到下一次循环
a = 3
while a<6:
a +=1
if a == 4:
continue
print a
for i in range(1,5):
if i==2:
continue
print i
for i in range(1,5):
print i
if i==2:
continue
”’
continue:只是结束本次循环,然后继续进入下一个循环
break:直接结束整个循环
”’
区别:
for i in range(1,4):
if i ==2:
continue
print i
for i in range(1,4):
if i==2:
break
print i
结果:
1
3
1
(五)Python函数
1.函数(function)
①系统自带
②自定义
#系统自带
#字符串长度
a = "flagisTrue"
print len(a)
#字符串的切割
a = "flag"
b = a.split("a")
print b
#自定义
def a():
print "hello"
a()
#python中函数定义的两个含义:①申明指定的部分是函数不是对象②定义函数所包含的功能
'''
函数定义的格式:
def 函数名():
函数内容
'''
2.形参与实参
def function(a,b):
if a>b:
print a
else:
print b
function(2,5)
#关键参数
def function(a=1,b=2,c=3):
print a
print b
print c
function(5)
function(b=7,a=6)
function(3,c=8,b=9)
输出:
5
5
2
3
6
7
3
3
9
8
3.全局变量与局部变量
差别在于:作用域
①局部变量
def func(a):
i = 1
print i
i=2
print i
func(2)
结果:
>>>
2
1
>>>
②全局变量
global声明全局变量的标识符
def func():
global i
i = 7
print i
i = 3
print i
func()
def func1():
global a
a = 9
func1()
#因为a是全局变量
print a
结果:
>>>
3
7
9
>>>
试想:
def func1():
global a
a = 9
print a
输出:
Traceback (most recent call last):
File "C:/Users/linmeini_love/Desktop/123.py", line 4, in <module>
print a
NameError: global name 'a' is not defined
4.函数使用与返回值
#返回值
#一个返回值
def test():
i = 7
return i
print test()
#多个返回值
def test1(i,j):
k=i*j
return (i,j,k)
x=test1(2,5)
print x
def test1(i,j):
k=i*j
return (i,j,k)
m,n,o=test1(2,5)
print o
输出:
>>>
7
(2, 5, 10)
10
>>>
5.文档字符串
作用:用于查看所对应文档的功能
(下面是某个文档)
#文档字符串
def d(i,j):
'''实现乘法运算的函数
函数会返回乘法运算结果'''
k = i*j
return k
那怎么知道该文档的功能呢?
①
print d.__doc__
输出:
实现乘法运算的函数
函数会返回乘法运算结果
②
help(d)
Help on function d in module __main__:
d(i, j)
实现乘法运算的函数
函数会返回乘法运算结果
(六)函数进阶–模块
1.函数是一段程序,模块是一个程序块
'''
在使用模块之前,必须先导入指定的模块,才能使用
自带模块:标准库模块
①标准库中与系统功能有关的模块叫sys模块
·版本:version
·地址:executable
·返回windows操作系统:getwindowsversion()
·查看倒入模块列表:modules.keys()
'''
>>> import math
>>> math.pi
3.141592653589793
>>>
>>> import sys
>>> sys.version
'2.7.10 (default, May 23 2015, 09:44:00) [MSC v.1500 64 bit (AMD64)]'
>>> sys.executable
'C:\\Python27\\pythonw.exe'
>>> sys.getwindowsversion()
sys.getwindowsversion(major=6, minor=1, build=7600, platform=2, service_pack=‘’
>>> sys.modules.keys()
”’
2.字节编译
'''
1..pyc文件:以.pyc为后缀名的一类文件
2.在执行Python模块时有两种执行方式:①模块内容--字节编译-->二进制语言(产生对应的.pyc文件:二进制文件)--->执行②直接执行对应模块的二进制语言
那为什么我们之前说Python是解释型语言,而不是编译型语言,现在又说它有字节编译?如下:
Python虽然出现了编译这个过程,但是该过程在解释其中发生的。编译形语言是说在软件中就有一个独立的编译模板去将程序编译
3..pyc文件产生的方式:(2种)
①本来没有,直接执行.py为后缀的某个模块,就会生成对应的.pyc文件
②打开Python编辑器
cmd->
4.在Python中,.pyc文件最大的作用是加快了模块的运行速度,.pyc文件还可以做反编译等高级功能
5.二进制软件阅读器(Binary Viewer)
'''
(七)Python数据结构
1.数据结构
#对三个物品:apple、orange、pear
'''
按顺序存储
'''
#存储一(列表):可以取出
["apple","orange","pear"]
#存储二(元组):不可以取出,也不可以更改
("apple","orange","pear")
#存储三(字典):值存储到某一有名字的键
{"sam":"apple","Jac":"orange","mating":"pear"}
'''
数据结构:数据的组织方式,数据的存储方式,数据结构是静态的
算法:运算方法,思维,动态的
数据结构是算法的基础,但是相同的数据结构运用不同的算法拥有不同的效率
'''
2.棧
3.队列
(八)面向对象
(九)文件与Python异常处理
(十)标准库与Python其他使用