首页 > 编程语言 >蓝桥楼赛第30期-Python-第二天赛题 题解

蓝桥楼赛第30期-Python-第二天赛题 题解

时间:2024-05-23 22:58:25浏览次数:30  
标签:-% std 01 题解 赛题 datetime 蓝桥 time append

楼赛 第30期 Python 模块大比拼

解析网页元素

目标

本次挑战,我们需要使用 Python 访问软科世界大学排行榜来获取首页 30 所学校的信息。

为避免目标网站的内容发生变化,我们使用保存之后的网页进行实验。

链接如下:

https://labfile.oss.aliyuncs.com/courses/4070/rank2021.html

网页内容如图所示:
在这里插入图片描述

要求

  1. 脚本文件路径为 /home/project/rank2021.py。
  2. 目标网站为:https://labfile.oss.aliyuncs.com/courses/4070/rank2021.html
  3. 请安装 BeautifulSoup 模块,确保脚本能够正常运行。
  4. 脚本需要实现对目标网站的抓取和解析,并打印输出。
    输出共 30 行。
  5. 最终运行效果如下:
    在这里插入图片描述

题解:

import re, requests
from lxml import html
etree = html.etree
daxue = []; guojia = []; paiming = [] ; zongfen = []
res = requests.get("https://labfile.oss.aliyuncs.com/courses/4070/rank2021.html", )
res.encoding="utf-8"
tree = etree.HTML(res.text)
trs = tree.xpath('.//div [@class="logo"]/img')
for x in trs:
	cc = x.attrib.get('alt')
	daxue.append(cc)
trs = tree.xpath('.//tr')
for x in trs[1:]:
	l = x.xpath ('.//td' )
	z = l[2].text
	z = z.replace(" ", "").replace("\n", "")
	guojia.append(z)
	z = l[3].text
	z = z.replace(" ", "").replace ("\n", "")
	paiming.append(z)
	z = l[4].text
	z = z.replace(" ", "").replace ("\n", "")
	zongfen.append(z)
for x in range(1, 31):
	r = []
	r.append(str(x))
	r.append(daxue[x-1])
	r.append(guojia[x-1])
	r.append(paiming[x-1])
	r.append(zongfen[x-1])
	print(r)

特定年份日期处理

介绍

日期和时间是我们日常生活中非常重要的概念,它影响着我们生活的方方面面,所以对于日期和时间的正确处理就至关重要。

目标

本节挑战,我们需要编写一个脚本程序,打印输出 2021 年所有周六的日期。

要求

  1. 文件的路径为 /home/project/Saturday.py。
  2. 每行一个日期,打印输出的行数与2021 年周六的总个数相等。
  3. 最终效果图(部分截图)如下:
    在这里插入图片描述

题解:

from datetime import datetime, timedelta
start_time = "2021-01-01"
end_time = "2022-01-01"
std = datetime.strptime(start_time, "%Y-%m-%d")
etd = datetime.strptime(end_time, "%Y-%m-%d")
while std < etd:
	if std.isoweekday() == 6:
		print(std.strftime("%Y-%m-%d"))
	std = std + timedelta(days=1)

任意年份日期处理

介绍

日期和时间是我们日常生活中非常重要的概念,它影响着我们生活的方方面面,所以对于日期和时间的正确处理就至关重要。

目标

本节挑战,我们需要编写一个脚本程序,打印输出任意年份所有周日的日期。

蓝桥云课课程页: https://www.lanqiao.cn/courses/

要求

  1. 文件的路径为 /home/project/Sunday.py。
  2. 每行一个日期,打印输出的行数与对应年份周日的总个数相等。
  3. 最终效果图(部分截图)如下:

在这里插入图片描述
在这里插入图片描述

题解

from datetime import datetime, timedelta
import sys
year = int(sys.argv[1])
start_time = "%s-01-01" % (year,)
end_time = "%s-01-01" % (year + 1,)
std = datetime.strptime(start_time, "%Y-%m-%d")
end = datetime.strptime(end_time, "%Y-%m-%d")
while std < end:
	if std.isoweekday() == 7:
		print(std.strftime("%Y-%m-%d"))
	std = std + timedelta(days=1)

标签:-%,std,01,题解,赛题,datetime,蓝桥,time,append
From: https://blog.csdn.net/a541972321/article/details/122691426

相关文章

  • 蓝桥杯-班级活动
    题目描述小明的老师准备组织一次班级活动。班上一共有(n)名((n)为偶数)同学,老师想把所有的同学进行分组,每两名同学一组。为了公平,老师给每名同学随机分配了一个(n)以内的正整数作为id,第(i)名同学的id为(a_i)。老师希望通过更改若干名同学的id使得对于任意......
  • 蓝桥杯-合并数列
    小明发现有很多方案可以把一个很大的正整数拆成若干正整数的和。他采取了其中两种方案,分别将它们列为两个数组{a1,a2,...,an}和{b1,b2,...,bm}。两个数组的和相同。定义一次合并操作可以将某数组内相邻的两个数合并为一个新数,新数的值是原来两个数的和。小明想通过若干......
  • 优美子序列 题解
    有n个整数从左往右排成一行,构成一个序列a。如果通过删除原序列的若干个数(可以是删除0个),其他数保持位置不动,那么得到的序列就称为“子序列”。记sum表示序列a的所有数的总和,即sum=a[1]+a[2]+a[3]+...+a[n]。如果一个“子序列”的各个数加起来的和等于sum-1,那么这个“子序列”......
  • 题解:聪聪与可可(概率与期望)
    [NOI2005]聪聪与可可题目描述在一个魔法森林里,住着一只聪明的小猫聪聪和一只可爱的小老鼠可可。虽然灰姑娘非常喜欢她们俩,但是,聪聪终究是一只猫,而可可终究是一只老鼠,同样不变的是,聪聪成天想着要吃掉可可。一天,聪聪意外得到了一台非常有用的机器,据说是叫GPS,对可可能准确的定位......
  • [Usaco2017 Open]Bovine Genomics 题解^&*^(
    不知道为啥,我死活想不到二分(楼下正解)所以,就有了这篇题解可以看到,这道题离暴力的距离只有一步!就是数组开不下!!小问答:数组开不下时,你会?A:mapB:优化代码C:gp_hash_table由于正在学hash,所以容易想到...tong[本来的下标%9999999]然后就玄学的过了。。。ACcode#include<bi......
  • 【转载】2024年度山东省自然科学基金项目(第一批)申报常见问题解答
    地址:https://mp.weixin.qq.com/s?__biz=Mzg2NDU5NjA1OQ==&mid=2247579452&idx=2&sn=a038e35fb2958666ab255993008c8064&chksm=ce650e08f912871e77d05569567a15fdffcbedd6a1762a19433b4aabcdcbdf96272d52e28112&mpshare=1&scene=23&srcid=0523SHJ0......
  • CSP历年复赛题-P1046 [NOIP2005 普及组] 陶陶摘苹果
    原题链接:https://www.luogu.com.cn/problem/P1046题意解读:30+伸手的高度,能够得着几个苹果。解题思路:直接模拟。100分代码:#include<bits/stdc++.h>usingnamespacestd;inta[15],h,ans;intmain(){for(inti=1;i<=10;i++)cin>>a[i];cin>>h;......
  • Vue 使用 Devextreme框架,下拉框不会随页面的滚动而移动的问题解决
    Devextreme的DxSelectBox组件的下拉选项部分,默认是绝对位置布局,导致页面滚动时,下拉部分不会上下移动个人的解决方案,监听页面滚动事件,如果目前有打开的下拉框,先关闭下拉框,随后迅速再打开,视觉效果上可以做到下拉选项跟随组件滚动vue项目中可能会有很多页面,很多下拉框,我是用的给每......
  • NPOI创建word文档,使用unicode写入打勾的小方框,word2021显示异常问题解决
    word2019查看NPOI创建的word中打勾方框,显示正常,但是word2021显示就变成下面这个样子了,应该是word2021对这个特殊字符的渲染导致的 想要普通的效果,白色背景黑边黑勾的效果,换一个字体可以解决 c# 代码XWPFDocumentdocument=newXWPFDocument();XWPFParagraphparagrap......
  • CSP历年复赛题-P1087 [NOIP2004 普及组] FBI 树
    原题链接:https://www.luogu.com.cn/problem/P1087题意解读:字符串作为根,左边一半作为左子树,右边一半作为右子树,递归构造数,并按FBI规则输出后续遍历结果。解题思路:按照题意,通过dfs来构造树,对于字符串str,提取左边一半递归构造左子树,提取右边一半递归构造右子树,前提是字符串长度>1......