讲点python基础知识
admin
2023-07-31 01:52:38
0

运算符

类型


程序结构

  • 1.分支结构
    例:

    代码设计:

# -*- 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)

代码实例:

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)

相关内容

热门资讯

Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
项目管理和工程管理的区别 项目管理 项目管理,顾名思义就是专注于开发和完成项目的管理,以实现目标并满足成功标准和项目要求。 工...