python视频教学笔记 中谷教育
2013-11-27 21:42
381 查看
字节代码 pyc
import py_compile
py_compile.compile(hello.py)
优化代码 pyo
python -O -m py_compile hello.py
syntaxError 语法错误
NameError 变量函数名字错误
id(a) 变量在内存中的地址
赋值语句
a+=50
a-=50
a*=50
a\=50
a%=50
逻辑判断
1>2 and 2<3 false 两个都成立即位真
or 只有一个成立即为真
not 1>2 取反
raw_input() raw_input("please input...")
int(raw_input())
测试数据类型
type(num)
切片
a="abcde"
a[1:4]
a[:4]
a[4:]
a[::2]
a[-1] 最后一个
a[-4:-1]
a[-2:-5:-1] 反着取 dcb
dir(__builtins__)
help(input)
len(str1) 求序列长度
str1+str2 连接序列
str1*5 重复5次
'c' in str1 判断元素c是否在序列中
max(str2) 取最大值
min(str1)
cmp(str1,str2) 比较字符串大小返回值是1,-1,0
###############################################################################################################
元组()
t=("milo",30,"male")
t[0]
t2(2,) 只有一个元素的元组
元组的值不能更改
name,age,gender=t
a,b,c=(1,2,3)
列表[]
t=["milo",30,"male"]
t2['abc'] 只有一个元素的列表
listmilo[0] = 'zou'
listmilo.append("12345678")
listmilo.remove('12345678')
listmilo.remove(listmilo[3])
def machine(x=2,y="奶油"): 形参可以指定默认值,可以指定一个也可以全部
global y 强制声明全局变量
tuples 元组
list 列表
dict 字典
字典{} 哈希表无序的
dic['name'] 取值
dic={"name":"molo","age":25}
for k in dic:
print k
print dic[k]
dic[name]='mike' 修改字典的键值对
del(dic[name]) 删除字典的键值对
dic.pop('age') 弹出
dic.clear 全删字典为空
del(dic) 删除字典
dic.get(3) 取值
dic.get(3,"error") 取值不存在则报自定义的错误信息
dic.keys() 返回key列表类型
dic.values 返回values立标类型
查看对象里的方法 dir(dic)
###########################################################################################################
循环
for x in "abcd":
print "hello"
range(10) 生成序列
for x in range(100):
range(1,11,2) 起始值,中止值,步长
xrange(10)
for x in d:
print d[x]
print d.items()
for k,v in d.items():
print k
print v
利用原理
a,b,c = t
t=[1,2,3]
循环带else的例子
for x in y:
xxx
else:
xxx
import time
time.sleep(1)
循环
pass 代码桩
exit() 结束程序
continue
break
while xi="q":
xxx
else:
xxx
############################################################################################################
函数
def aaa():
sum([1,2,3,4,5,])
tab和四个空格在,第一行打tab第二行打空格是不行的
格式化输出
print "%s,%S"% x,y
传元组进函数
f(*t)
传字典进函数
f(**d)
如与函数的形参数不一致则可以这样传值
f(d['n'],d['a'])
处理多余的参数
def(x,*args):
def(x,*args,**kwargs):
lambda 匿名函数
def f(x,y)
return x*y
g=lambda x,y:x*y
g(2,3)
def f(x,y)
return x*y
l=range(1,6)
每次取两值给f,l是序列
reduce(f,l)
用lambda表达式计算阶乘计算
reduce(lambda x,y:x*y,range(1,6))
from __future__ import division 除法结果带商和余数
switch实现 采用字典实现
from __future__ import division
x=1
y=2
operator = "/"
result ={
"+":x+y,
"-":x-y,
"*":x*y,
"\":x\y
}
print result.get(operator)
内置函数
abs()
min()
max()
len()
divmod()
pow()
round()
callable() 测试函数可被调用,布尔值
isinstance() 测试对象是不是括号中的类型 isinstance([],list) 返回true
cmp() 比较字符串
range() 快速生成序列
xrange()
类型转化函数
type()
int()
long()
float()
str()
list()
tuple()
hex()
oct()
chr()
ord()
string函数
str.capitalize() 首字母大写
str.replace()
str.split()
序列操作函数
len()
min()
max()
reduce() 每次取前两个和后一个做运算
reduce(lambda x,y:x+y,range(1,101)) //1-100相加
filter() 调用另一个函数,第一个参数
zip()
zip(name,age,tel) 合并三个序列
map(None,name,age,tel) map值不够用none代替,第一个值可用函数传入
################################################################################################################
包,模块
导入到顺序:本目录-->lib目录-->packs-->没有
包:__init__.py 与模块放在同一目录下这个目录就是包名
import
import as
from cal import jia
#####################################################################################################################
正则表达式
元字符
. 匹配任意一个字符
^ 匹配行首一个
$ 匹配行尾一个
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{} 重复n次或更多次,{n,m} 重复n到m次 {3,4} 重复3代表的正则4次
[] 指定一个字符集,可以匹配其中的任意一个。[^io] ^是取反的意思,整体是除了i和o的字符;元字符不起作用。
\
| 或者的意思,两边有一个成立都可以。
()
\b 单词的开头或结尾,也就是单词的分界处
.*连在一起就意味着任意数量的不包含换行的字符
常用元字符
代码 说明
. 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线或汉字
\s 匹配任意的空白符
\d 匹配数字
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束
常用限定字符
代码/语法 说明
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次
常用反义词
代码/语法 说明
\W 匹配任意不是字母,数字,下划线,汉字的字符
\S 匹配任意不是空白符的字符
\D 匹配任意非数字的字符
\B 匹配不是单词开头或结束的位置
[^x] 匹配除了x以外的任意字符
[^aeiou] 匹配除了aeiou这几个字母以外的任意字符
编译正则表达式
str=re.compile(ab*)
或者
r1= r"\d{3,4}-?\d{7,8}" //定义一个正则表达式
p_tel = re.compile(r1)
p_tel.findall('010-12345678')
后面的参数可以大小写匹配
csvt_re = re.compile(r'csvt',re.I)
csvt_re.findall('csVT')
match() 查找字符串,只从开头找,找到后返回一个对象::决定RE是否在字符串开始的位置
search() 查找字符串,全字符查找,找到后返回::扫描字符串,找到这个RE匹配的位置
findall() 匹配所有字符串,并把它们作为一个列表返回
finditer() 匹配所有字符串,并把它们作为一个迭代器返回
group() match找到后可以用group看到结果::返回被RE匹配的字符串
start() 返回匹配开始的位置
end() 返回匹配结束的位置
span() 返回一个元组包含(开始,结束)位置
实际程序中,最常见的做法是将‘MatchObject’保存在一个变量里,然后检查它是否为None
#!pthon
p=re.compile(...)
m=p.match('string goes here')
if m:
print 'Match found',m.group()
else:
print 'no match'
sub() 替换字符串
re.sub(r'c..t','pthon','csvt caat cvvt cccc')
结果为python python python cccc 替换了,支持正则的替换
subn() 返回的结果与sub多一个一共替换了多少次
spilt()
re.split(r'[\+\-\*]','123+456-789*')
内置函数列表
dir(re)
编译标志
DOTALL,S 使.匹配包括换行在内的所有字符re.S
IGNORECASE,I 使匹配对大小写不敏感re.I
LOCALE,L 做本地化识别时候用这个re.L
MULTILINE,M 匹配多行时候使用,可以忽略换行符等特殊字符re.M
VERBOSE,X 当定义的正则是多行时候可以用这个re.X
分组
import py_compile
py_compile.compile(hello.py)
优化代码 pyo
python -O -m py_compile hello.py
syntaxError 语法错误
NameError 变量函数名字错误
id(a) 变量在内存中的地址
赋值语句
a+=50
a-=50
a*=50
a\=50
a%=50
逻辑判断
1>2 and 2<3 false 两个都成立即位真
or 只有一个成立即为真
not 1>2 取反
raw_input() raw_input("please input...")
int(raw_input())
测试数据类型
type(num)
切片
a="abcde"
a[1:4]
a[:4]
a[4:]
a[::2]
a[-1] 最后一个
a[-4:-1]
a[-2:-5:-1] 反着取 dcb
dir(__builtins__)
help(input)
len(str1) 求序列长度
str1+str2 连接序列
str1*5 重复5次
'c' in str1 判断元素c是否在序列中
max(str2) 取最大值
min(str1)
cmp(str1,str2) 比较字符串大小返回值是1,-1,0
###############################################################################################################
元组()
t=("milo",30,"male")
t[0]
t2(2,) 只有一个元素的元组
元组的值不能更改
name,age,gender=t
a,b,c=(1,2,3)
列表[]
t=["milo",30,"male"]
t2['abc'] 只有一个元素的列表
listmilo[0] = 'zou'
listmilo.append("12345678")
listmilo.remove('12345678')
listmilo.remove(listmilo[3])
def machine(x=2,y="奶油"): 形参可以指定默认值,可以指定一个也可以全部
global y 强制声明全局变量
tuples 元组
list 列表
dict 字典
字典{} 哈希表无序的
dic['name'] 取值
dic={"name":"molo","age":25}
for k in dic:
print k
print dic[k]
dic[name]='mike' 修改字典的键值对
del(dic[name]) 删除字典的键值对
dic.pop('age') 弹出
dic.clear 全删字典为空
del(dic) 删除字典
dic.get(3) 取值
dic.get(3,"error") 取值不存在则报自定义的错误信息
dic.keys() 返回key列表类型
dic.values 返回values立标类型
查看对象里的方法 dir(dic)
###########################################################################################################
循环
for x in "abcd":
print "hello"
range(10) 生成序列
for x in range(100):
range(1,11,2) 起始值,中止值,步长
xrange(10)
for x in d:
print d[x]
print d.items()
for k,v in d.items():
print k
print v
利用原理
a,b,c = t
t=[1,2,3]
循环带else的例子
for x in y:
xxx
else:
xxx
import time
time.sleep(1)
循环
pass 代码桩
exit() 结束程序
continue
break
while xi="q":
xxx
else:
xxx
############################################################################################################
函数
def aaa():
sum([1,2,3,4,5,])
tab和四个空格在,第一行打tab第二行打空格是不行的
格式化输出
print "%s,%S"% x,y
传元组进函数
f(*t)
传字典进函数
f(**d)
如与函数的形参数不一致则可以这样传值
f(d['n'],d['a'])
处理多余的参数
def(x,*args):
def(x,*args,**kwargs):
lambda 匿名函数
def f(x,y)
return x*y
g=lambda x,y:x*y
g(2,3)
def f(x,y)
return x*y
l=range(1,6)
每次取两值给f,l是序列
reduce(f,l)
用lambda表达式计算阶乘计算
reduce(lambda x,y:x*y,range(1,6))
from __future__ import division 除法结果带商和余数
switch实现 采用字典实现
from __future__ import division
x=1
y=2
operator = "/"
result ={
"+":x+y,
"-":x-y,
"*":x*y,
"\":x\y
}
print result.get(operator)
内置函数
abs()
min()
max()
len()
divmod()
pow()
round()
callable() 测试函数可被调用,布尔值
isinstance() 测试对象是不是括号中的类型 isinstance([],list) 返回true
cmp() 比较字符串
range() 快速生成序列
xrange()
类型转化函数
type()
int()
long()
float()
str()
list()
tuple()
hex()
oct()
chr()
ord()
string函数
str.capitalize() 首字母大写
str.replace()
str.split()
序列操作函数
len()
min()
max()
reduce() 每次取前两个和后一个做运算
reduce(lambda x,y:x+y,range(1,101)) //1-100相加
filter() 调用另一个函数,第一个参数
zip()
zip(name,age,tel) 合并三个序列
map(None,name,age,tel) map值不够用none代替,第一个值可用函数传入
################################################################################################################
包,模块
导入到顺序:本目录-->lib目录-->packs-->没有
包:__init__.py 与模块放在同一目录下这个目录就是包名
import
import as
from cal import jia
#####################################################################################################################
正则表达式
元字符
. 匹配任意一个字符
^ 匹配行首一个
$ 匹配行尾一个
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{} 重复n次或更多次,{n,m} 重复n到m次 {3,4} 重复3代表的正则4次
[] 指定一个字符集,可以匹配其中的任意一个。[^io] ^是取反的意思,整体是除了i和o的字符;元字符不起作用。
\
| 或者的意思,两边有一个成立都可以。
()
\b 单词的开头或结尾,也就是单词的分界处
.*连在一起就意味着任意数量的不包含换行的字符
常用元字符
代码 说明
. 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线或汉字
\s 匹配任意的空白符
\d 匹配数字
\b 匹配单词的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束
常用限定字符
代码/语法 说明
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次
常用反义词
代码/语法 说明
\W 匹配任意不是字母,数字,下划线,汉字的字符
\S 匹配任意不是空白符的字符
\D 匹配任意非数字的字符
\B 匹配不是单词开头或结束的位置
[^x] 匹配除了x以外的任意字符
[^aeiou] 匹配除了aeiou这几个字母以外的任意字符
编译正则表达式
str=re.compile(ab*)
或者
r1= r"\d{3,4}-?\d{7,8}" //定义一个正则表达式
p_tel = re.compile(r1)
p_tel.findall('010-12345678')
后面的参数可以大小写匹配
csvt_re = re.compile(r'csvt',re.I)
csvt_re.findall('csVT')
match() 查找字符串,只从开头找,找到后返回一个对象::决定RE是否在字符串开始的位置
search() 查找字符串,全字符查找,找到后返回::扫描字符串,找到这个RE匹配的位置
findall() 匹配所有字符串,并把它们作为一个列表返回
finditer() 匹配所有字符串,并把它们作为一个迭代器返回
group() match找到后可以用group看到结果::返回被RE匹配的字符串
start() 返回匹配开始的位置
end() 返回匹配结束的位置
span() 返回一个元组包含(开始,结束)位置
实际程序中,最常见的做法是将‘MatchObject’保存在一个变量里,然后检查它是否为None
#!pthon
p=re.compile(...)
m=p.match('string goes here')
if m:
print 'Match found',m.group()
else:
print 'no match'
sub() 替换字符串
re.sub(r'c..t','pthon','csvt caat cvvt cccc')
结果为python python python cccc 替换了,支持正则的替换
subn() 返回的结果与sub多一个一共替换了多少次
spilt()
re.split(r'[\+\-\*]','123+456-789*')
内置函数列表
dir(re)
编译标志
DOTALL,S 使.匹配包括换行在内的所有字符re.S
IGNORECASE,I 使匹配对大小写不敏感re.I
LOCALE,L 做本地化识别时候用这个re.L
MULTILINE,M 匹配多行时候使用,可以忽略换行符等特殊字符re.M
VERBOSE,X 当定义的正则是多行时候可以用这个re.X
分组
相关文章推荐
- python视频教学笔记 中谷教育
- 小甲鱼python视频003小插曲之变量和字符串--笔记 2017.12.29
- Linux基础之linux终端和shell命令(针对韩立刚老师的linux教学视频编写的笔记)
- python opencv入门(学习笔记no.2)-视频的读入读出
- 韩顺平 javascript教学视频_学习笔记3_js基本数据类型_js运算符
- 机器学习笔记(一)- from Andrew Ng的教学视频
- 韩顺平 javascript教学视频_学习笔记4_js运算符2_js移位运算
- 韩顺平 javascript教学视频_学习笔记16_Object类_闭包_成员函数再说明_聪明的猪小练习
- 孙鑫老师教学视频学习笔记——单文档中菜单操作
- 韩顺平 javascript教学视频_学习笔记28_dom对象(document对象) 最重要的
- 看郭克华老师的视频教学笔记(四)
- 小甲鱼python视频004改进我们的小游戏--笔记 2017.12.31
- 看郭克华老师的视频教学笔记(七)
- 李明--linux教学视频 笔记 CH1----5
- 小甲鱼python视频第三讲(课堂笔记)
- 韩顺平 javascript教学视频_学习笔记5_js三大流程控制(顺序流程、分支控制、循环控制)
- 韩顺平 javascript教学视频_学习笔记21_js内部类_js系统函数 重点重点
- 韩顺平 javascript教学视频_学习笔记29_dom编程加强_dom对象(document2) 加强重要
- 孙鑫老师VC++教学视频学习笔记
- 小甲鱼python视频第二讲(课堂笔记)