讲点python基础知识

来源:转载

运算符

程序结构

  • 1.分支结构
    例:

    代码设计:

# -*- coding:utf-8 -*-x=int(raw_input("输入x值:"))if x<=0:f=x**2print felse:f=x**3print 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)

代码实例:

import restr='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: 不包括换行符内的所有字符

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

import restr='010-12345678'#字符串res=r'/d{3}-?/d{8}'#写模式a=re.compile(res,re.S)#a编译成对象print a.findall(str)

写一个简单的小爬虫

import reimport urllib#得到页面def getHtml(url):page=urllib.urlopen(url)Html=page.read()return Html#得到图片地址def getImge(Html):res=r'src="(.*?/.jpg)" w'imgre=re.compile(res,re.S)imglist=imgre.findall(Html)return imglist#下载图片并命名def downloadimg(imglist):x=0for imgurl in imglist:urllib.urlretrieve(imgurl,'%d.jpg' % x)x=x+1url='http://tieba.baidu.com/p/4106828830'Html=getHtml(url)imglist=getImge(Html)downloadimg(imglist)

分享给朋友:
您可能感兴趣的文章:
随机阅读: