自学python 编程基础知识_讲点python基础知识

运算符

bVqtan

类型

bVqzgN

bVqzg0

程序结构

1.分支结构

例:

bVqtbW

代码设计:

# -*- coding:utf-8 -*-

x=int(raw_input("输入x值:"))

if x<=0:

f=x**2

print f

else:

f=x**3

print f

三段以上条件则:if,elif,else

2.循环结构

range(起始值,终止值,步长)

range(0,20)#0到19的数

例:打印19个“我要吃饭”

#用for遍历19个循环

for x in range(1,20):

print x,"I want to eat"

continue:结束当次循环

break:结束整个循环

for x in range(1,20):

if x==2:

print x,"I don't want to eat"

continue #x=2时,执行"我不想吃",其他不变

if x==4:

print x,"233333"

break #x=4时,执行23333,x=[5-19]都不能执行

print x,"I want to eat"

正则表达式

作用:字符串(str)匹配模式(re)

代码实例:

bVqti3

import re

str='abc,afc,amc,aic,^abc'

res=r'a[bf]c'#结果:['abc', 'afc']

print re.findall(res,str)

res=r'a[^bf]c'#取反:['amc', 'aic']

res=r'\^abc'#\取消所有元字符,匹配['^abc']

res=r'ab+'#匹配ab,abbbbbb之类

res=r'ab*'#匹配a,ab,abbbbbb之类

str='010-123456789'

res=r'010-?\d{8}'#匹配电话号码

贪婪模式:尽可能大的匹配。

非贪婪模式:.? 是一个固定的搭配,.和代表可以匹配任意无限多个字符,加上?表示使用非贪婪模式进行匹配,也就是我们会尽可能短地做匹配,以后我们还会大量用到 .*? 的搭配。

函数:

re.compile(pattrn,flags):编译成对象,加快程序

flags:

1.re.I: 忽略大小写

2.re.S: 不包括换行符内的所有字符

3.re.L:做本地化识别

4.re.M:匹配多行字符串

5.re.X:正则表达式为多行

re.findall(pattern, string):搜索字符串,以列表形式返回。

re.match():尝试从字符串的开始匹配一个模式

re.search():在字符串内查找模式匹配,只到找到第一个匹配然后返回,如果字符串没有匹配,则返回None。

re.sub():替换。

re.split():切割。

例:

re.S的用法(匹配\n,\t之类的换行符)

import re

str="abc\noooass"

res="\w{3}.\w{6}"

a=re.compile(res,re.S)

print a.findall(str)

re.M的用法(字符串多行)

import re

str="""

abc oo

abc ooo

ooo abc

sia abc

"""

res='^abc'

a=re.compile(res,re.M)

print a.findall(str)

re.X用法(正则写多行)

import re

str="010-12345678"

res="""

\d{3,4}

-?

\d{8}

"""

a=re.compile(res,re.X)

print a.findall(str)

re.search():一般是用来查询文件中是否有我们想要的字符串,group()输出

import re

str = "Daming is a handsome boy, he is cool "

m = re.search(r"(\w+)\s", str)

if m:

print m.group(0), '\n', m.group(1)

else:

print 'not match'

re.sub():

import re

r=r'c..t'

print re.sub(r,'python','csvt csst csft')

re.split():

import re

str='101+123-123*12233/123'

res=r'[-+\*\/]'

print re.split(res,str)

写一个简单的下载贴吧图片小爬虫

import re

import urllib

def getHtml(url):

page = urllib.urlopen(url)

html = page.read()

return html

def getImg(html):

reg = r'src="(.+?\.jpg)" pic_ext'

imgre = re.compile(reg)

imglist = imgre.findall(html)

x = 0

for imgurl in imglist:

urllib.urlretrieve(imgurl,'%s.jpg' % x)

x = x + 1

html = getHtml("http://tieba.baidu.com/p/2460150866")

getImg(html)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值