在春节前夕,蓝桥云课推出了第 30 期楼赛——Python 模块大比拼,不知道大家参与挑战了吗?10 道趣味应用题,你会几题呢?
![Python 模块大比拼,挑战过的都说好? Python 模块大比拼,挑战过的都说好?]()
题目难度为简单和中等,有不少同学通过了挑战。那这次的比赛奖励,你领取到了吗?
![Python 模块大比拼,挑战过的都说好? Python 模块大比拼,挑战过的都说好?]()
在大家蹲守冬奥会看谷爱凌,抢冰墩墩时,我在努力地整理此次楼赛的通关题解,敬业本人
。
娱乐虽好,学习也不能忘!(如果想获取更详细的楼赛题解,可以通过文末方式免费领取哦~)
在我们编写程序的时候,经常需要与操作系统进行一些交互,os 模块中包含很多操作系统的函数接口,让你可以通过 Python 轻松实现这些功能。
本节挑战,将根据下面的要求进行一些目录和文件的操作。
题目要求
1.通过 os 模块在 /home/project
目录下新建一个多层目录 test1/first/second/
。
2.将子目录中的 second
目录移动到 /home/project
目录下,更名为 test2
。
3.在 test2
目录下新建一个 lanqiao.txt
文件。
题目解析
import os
import shutil
os.listdir()
os.makedirs('./test1/first/second')
shutil.move('./test1/first/second','./')
os.rename('./second','test2')
os.mknod('./test2/lanqiao.txt')
>>import os
>>import shutil
>>os.makedirs('/home/project/test1/first/second/')
>>shutil.move('/home/project/test1/first/second/','/home/project/test2')
>>open('/home/project/test2/lanqiao.txt','w')
编写一个脚本程序,需要实现对 /home/project/files
目录下的文件类型进行统计。然后根据用户输入,返回对应文件类型的个数。
题目要求
1.文件路径为:
/home/project/filetype.py
。
2.文件类型不存在时,返回 0
3.最终实现的效果如下:
![Python 模块大比拼,挑战过的都说好? Python 模块大比拼,挑战过的都说好?]()
题目解析
import os
dir='/home/project/files'
ans=0
filetype=input('请输入文件类型:')
for parentdir,dirname,filenames in os.walk(dir):
for filename in filenames:
if os.path.splitext(filename)
[1]=='.'+filetype:
ans=ans+1
print(ans)
import os
path = '/home/project/files'
fileType = input("请输入文档类型:")
res = 0
for i in os.listdir(path):
if(os.path.splitext(i)[-1][1:]==fileType):
res = res+1
print(res)
爬虫的本质其实就是网络请求,通过自动化脚本或程序对互联网上的资源进行爬取和存储。
因为 Python 语法的简洁和第三库的丰富,使其在网络爬虫方面得天独厚。
题目要求
本次挑战,我们需要编写脚本实现对蓝桥云课课程页的访问,并对其源码进行保存。
蓝桥云课课程页:http://www.lanqiao.cn/course
题目解析
import requests
url = "https://www.lanqiao.cn/courses/ "resp = requests.get(url).textwith open("./lanqiao.html",mode="w") as fp:
fp.write(str(resp))
import requests
r=requests.get('https://www.lanqiao.cn/courses/')
f=open('lanqiao.html','wb')
f.write(str.encode(r.text,'utf-8'))
f.close
BeautifulSoup 是 Python 中一个很常用的模块,功能包括解析 HTML、XML 文档、修复含有未闭合标签错误的文档等。
名字的由来是因为在网页开发中,常把语法错误和用法混乱的标签称为 tag soup
(大杂烩),目的就是把它做成 BeautifulSoup
(靓汤)。
题目要求
本次挑战,我们需要使用 Python 访问软科世界大学排行榜来获取首页 30 所学校的信息。
网页内容如图所示:
![Python 模块大比拼,挑战过的都说好? Python 模块大比拼,挑战过的都说好?]()
最终运行效果如下:
![Python 模块大比拼,挑战过的都说好? Python 模块大比拼,挑战过的都说好?]()
题目解析
from bs4 import BeautifulSoup as bs
import requests
res = requests.get("https://labfile.oss.aliyuncs.com/courses/4070/rank2021.html")
res.encoding = "utf-8" #将页面编码设为UTF-8,避免BeautifulSoup解析出现中文乱码
soup = bs(res.text,'lxml')
ranking_list = []
for item in soup.tbody:
if item.name == "tr":
record = []
for td in item:
text=td.text.strip()
if text != '':
record.append(text)
ranking_list.append(record)
for i in ranking_list:
print(i)
from bs4 import BeautifulSoup
import requests
url = 'https://labfile.oss.aliyuncs.com/courses/4070/rank2021.html'
res = requests.get(url)
html = res.content
soup = BeautifulSoup(html,'html.parser')#整个列表
item = soup.find('tbody').find_all('tr')
list=[]flag=0
for i in item:
school = i.find_all('td')
id=''
name=''
country=''
ranking=''
score=''
for j in school:
if flag==0:
id =j.text.strip()
elif flag==1:
name = j.text.strip()
elif flag==2:
country = j.text.strip()
elif flag==3:
ranking = j.text.strip()
elif flag==4:
score = j.text.strip()
else:
pass
if flag==5:
flag=0
else:
flag+=1
s = [id, name, country, ranking, score]
list.append(s)
for l in list:
print(l)
【号外!号外!】
近期,蓝桥云课联合 B 站百万 UP 主 Oeasy 上线了《Oeasy 教你玩转 Python》,零基础也可以学习 Python 哦~戳文末“阅读原文”即可直达课程页面!
因为内容有限,无法一一展示。如果想获取更全的 Python 模块题解,欢迎通过以下方式免费领取。
▼扫码添加小蓝获取更多▼
![Python 模块大比拼,挑战过的都说好? Python 模块大比拼,挑战过的都说好?]()
原文始发于微信公众号(蓝桥云课精选):Python 模块大比拼,挑战过的都说好?
评论