本文章记录观看B站python教程学习笔记和实践感悟,视频链接:【花了2万多买的Python教程全套,现在分享给大家,入门到精通(Python全栈开发教程)】 https://www.bilibili.com/video/BV1wD4y1o7AS/?p=6&share_source=copy_web&vd_source=404581381724503685cb98601d6706fb
上节课学习正则表达式的简介以及相关符号,re模块中match函数的使用,re模块中search函数和findall函数的使用,re模块中sub函数和split函数的使用,本节课复习本章内容,本章习题,以及章节实战演练——实战一车牌归属地,实战二统计指定字符出现的字数,实战三格式化输出商品信息,实战四使用正则表达式提取图片网址。
1.复习本章内容以及习题
本章学习内容如下:
复习完本章节的基础知识,下面做一些章节习题:(这里只记录了博主本人不熟悉的选择题)
第四题,首先split是分格的意思,分出的结果为一个列表,排除A;对于split后面()的内容是充当一个分隔符的作用,它是不作为元素出现在列表中,排除BC。所以选D
本题是字符串检索方法考查。回顾一下这两个方法分别是什么,index()起始索引,而不是整个索引,的含义是要找的内容的第一个字符,在待搜索字符串中的位置,而且位置的索引从0开始,“正”字出现在“三更灯火五更鸡,正是男儿读书时”的第九个位置(“三”为0且包括了逗号),因此索引号为8;同理第三个根本找不到这句话,因此是报错(与find区分).
findall()那句也找不到,但是不会报错而是返回-1。
2.实战一车牌归属地
代码实现以及解释:
lst=['京A8888','津B6666','吉A77766']
#遍历操作
for i in lst:#对归属地就是列表的第一个,也就是检索为0的字符area=i[0:1]#这是一个从0开始到1结束,但是不包括1的字符print(i,'归属地为:',area)
结果如下:
3.实战二统计指定字符出现的字数
代码实现以及解释:
s='HelloPython,HelloJava,hellophp'
word=input('请输入要统计的字符:')
#为了实现统计次数需要用count(),而且不区分大小写
#因为是字符串和浮点数拼接,这就涉及到一个格式化的问题
print('{0}在{1}里一共出现了{2}'.format(word,s,s.upper().count(word)))#count()里面填的是需要计数的那个字符,这里就是统计的word(这是由用户输入的)
结果如下:
4.实战三格式化输出商品信息
分几个步骤去做,第一个是准备数据,第二步是遍历原数据,第三步格式化输出。
代码以及解释如下:
#step1:创建表格数据。因为表格就是二维的列表,每一行列表都是一个产品
lst=[['01','电风扇','美的',500],['02','洗衣机','TCL',1000],['03','电风扇','老板',400]
]
#step2::二维列表的遍历。二维列表的遍历就是双层for循环
print('编号\t\t名称\t\t\t品牌\t\t单价')#\t表示空格(为了好看)
for i in lst:for j in i:print(j,end='\t\t')print()#换行。到这里才完成一个商品的遍历输出
#step3:格式化操作,有两个,编号和价格
for i in lst:i[0]='0000'+i[0] #索引为0的是编号要变成六位i[3]='¥{0:.2f}'.format(i[3])#format()内表示的是需要填空的实际变量,也就是i索引为3的是价格,2f表示保留两位小数,要加上¥print('编号\t\t\t名称\t\t\t品牌\t\t单价')#\t表示空格(为了好看)
for i in lst:for j in i:print(j,end='\t\t')print()#换行。到这里才完成一个商品的遍历输出
结果如下:
5.实战四使用正则表达式提取图片网址
博主未获得up主的资料,只能用wps扫了一下视频截图,然后使用AI修正,代码如下:
import re# 被AI修正后的字符串s(确保所有引号为英文)
s = '''
"queryEnc":"%C3%CO%C5%AE","queryExt":"美女","listNum":1726,"displayNum":1102160,"gsm":"3c","bdFmtDispNum":"约1,100,000","bdSearchTime":"","isNeedAsyncRequest":0,"bdIsClustered":"1","data":[{"adType":"0","hasAspData":"0","thumbURL":"https://img1.baidu.com/it/u=272155668,1962283813&fm=268&fmt=auto","commodityInfo":null,"isCommodity":0,"middleURL":"https://img1.baidu.com/it/u=272155668,1962283813&fm=26&fmt=auto","shituToken":"aadb3a","largeTnImageUr1":"","hasLarge":0,"hoverURL":"https://img1.baidu.com/it/u=272155668,1962283813&fm=26&fmt=auto","pageNum":30,"objURL":"ipprf_z2C$QAzdH3FAzdH3F2t42d_z&e3Bkwt17_z&e3Bv54AzdH3Ft4w2j_fjw6viAzdH3Ff6v=ippr%nA%dF%dFetn_z&e3Bxt78dn_z&e3Bvg%dFstej%dFda81%dFam%dFdl%dF88%dF8ande8cm80banonllalnba80_z&e3B3r286juj6=ippr%nA%dF%dFetn_z&e3Bxt78dn_z&e3Bvg&wrr=daad&ftzj=u111,8aaa&q=wba&g=a&2=ag&u4p=3rj2?fjv=8m9abc98cd&p=an8vwcw9v9jl1nm88jdllww8dmuwnvvn","fromURL":"ippr_z2C$qAzdH3FAzdH3Fe_z&e3Bm_z&e3BvgAzdH3Fr65utsjAzdH3FowpviMtgt_z&e3Brir?et1=m8adm8","fromJumpUr1":"ippr_z2C$qAzdH3FAzdH3Fe_z&e3Bm_z&e3BvgAzdH3Fr65utsjAzdH3FowpviMtgt_z&e3Brir?et1=m8adm8","fromURLHost":"v.6.cn","currentIndex":"","width":800,"height":600,"type":"jpg","is_gif":0,"isCopyright":0,"resourceInfo":null,"strategyAssessment":"3141544242_1243_0_0","filesize":"","bdSrcType":"0","di":"157630","pi":"0","is":"0,0","imgCollectionword":"","hasThumbData":"0","bdsetImgNum":0,"partnerId":0,"spn":0,"bdImgnewsDate":"2020-06-0302:31","fromPageTitle":"美女</strong>热舞","fromPageTitleEnc":"美女热舞","bdSourceName":"","bdFromPageTitlePrefix":"","isAspDianjing":0,"token":"","imgType":"","cs":"272155668,1962283813","os":"1570395708,812629700","simid":"272155668,1962283813","personalized":"0","simid_info":null,"face_info":null,"xiangshi_info":null,"adPicId":"0","source_type":""},{"adType":"0","hasAspData":"0","thumbURL":"https://img0.baidu.com/it/u=1934854801,2871685401&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=313","commodityInfo":null,"isCommodity":0,"middleURL":"https://img0.baidu.com/it/u=1934854801,2871685401&fm=253&fmt=auto&app=138&f=JPEG?W=5008h=313","shituToken":"9bb791","largeTnImageur1":"","hasLarge":0,"hoverURL":"https://img0.baidu.com/it/u=1934854801,2871685401&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=313","pageNum":31,"objURL":"ipprf_z2C$qAzdH3FAzdH3F2t42d_z&e3Bkwt17_z&e3BV54AzdH3Ft4w2j_fjw6viAzdH3Ff6v=ippr%nA%dF%dFt42_z&e3B33da_z&e3BV54%dF7r%dFwsst42%dF8889%dFac8d8aSlnl%dFd8ac8daSlnl-d-8daa_z&e3B3r2&6juj6=ippr%nA%dF%dFt42_z&e3B33da_z&e3Bv54&wrr=daad&ftzj=ull11,8aaaa&q=wba&g=a&2=ag&u4p=3rj2?fjv=8m9abc98cd&p=bmcukd9vmml18lau1mjdub9dpnlmnakd"'
'''# 模式字符串,其实就是找网址的共同点,这里\d{1}表示数字只出现一次,\d*表示出现0或多次
pattern = 'https://img\d{1}.baidu.com/it/u=\d*,\d*?&fm=\d*?&fmt=auto'
# 匹配并打印结果
lst = re.findall(pattern, s)
for i in lst:print(i)
结果如下:
本节完