当前位置:首页>python>【第40期】21天养成编程习惯:Python刷题第06天

【第40期】21天养成编程习惯:Python刷题第06天

  • 2026-09-21 19:29:38
【第40期】21天养成编程习惯:Python刷题第06天

跟老马一起“升级打怪”学编程!

  • 涉及考试:计算机学会编程能力等级认证(GESP)、电子学会等级考试
  • 活动内容:提供不同等级的真题供小朋友们选择练习
  • 备考建议:根据自己备考的等级选择相应题目
  • 附加价值:可作为白名单比赛的备考训练
  • 本月打卡:本月GESP_Python打卡题目

Day06:GESP一级2024.06_休息时间

【提交】

https://www.luogu.com.cn/problem/B4000

【问题描述】

小杨计划在某个时刻开始学习,并决定在学习  秒后开始休息。

小杨想知道自己开始休息的时刻是多少。

【输入描述】

前三行每行包含一个整数,分别表示小杨开始学习时刻的时 、分 、秒 (,, 的值符合 )。

第四行包含一个整数 ,表示小杨学习的总秒数(注: 的值符合 )。

【输出描述】

输出一行,包含三个整数,分别表示小杨开始休息时刻的时、分、秒。

【样例输入1】

12595910

【样例输出1】

13 0 9

【样例解释】

小杨在时刻 12:59:59 开始学习,学习  秒后开始休息,即在 13:0:9 时刻开始休息。

【数据范围】

对于全部数据,保证有 。

参考程序:

'''GESP2024.06休息时间'''h = int(input())m = int(input())s = int(input())k = int(input())m += (s + k) // 60s = (s + k) % 60h += m // 60m %= 60print(f"{h}{m}{s}")

Day06:GESP二级2024.06_平方和

【提交】

https://www.luogu.com.cn/problem/B4002

【问题描述】

小杨有 个正整数 ,他想知道对于所有的  (),是否存在两个正整数  和  满足 。

【输入描述】

第一行包含一个正整数 ,代表正整数数量。

之后  行,每行包含一个正整数,代表 。

【输出描述】

对于每个正整数 ,如果存在两个正整数  和  满足 ,输出 Yes,否则输出 No。

【样例输入1】

254

【样例输出1】

YesNo

【样例解释】

对于第一个正整数,存在 ,因此答案为 Yes。

【数据范围】

对于全部数据,保证有 。

参考程序:

'''[GESP202406 二级] 平方之和https://www.luogu.com.cn/problem/B4002'''n = int(input())for i in range(n):    a = int(input())    flag = Falsefor x in range(1, a):        y = a - x * xif y <= 0:break        z = int(y ** 0.5)if z * z == y:            flag = True            print("Yes")breakif flag isFalse:        print("No")

Day06:GESP三级2025.12_密码强度

【提交】

https://www.luogu.com.cn/problem/B4449

【问题描述】

小杨是学校网络安全小组的成员,今天他的任务是设计一个“密码强度检测器”,帮助同学们检查自己的密码是否足够安全。一个安全的密码需要满足以下条件:

  • 密码至少包含8个字符(太短的密码容易被猜出来哦!)。
  • 密码至少包含一个大写字母(A、B、C、...、Z 都可以)。
  • 密码至少包含一个数字(0、1、2、3、...、9 都可以)。

例如:

  • 密码 PAs1s2an 是安全密码(有8位、包含大写字母 P、A 和数字 1、2)。
  • 密码 ab1da3cd 不是安全密码(没有大写字母)。
  • 密码 Paabdbcd 不是安全密码(没有数字)。
  • 密码 Pa2 不是安全密码(只有3位,太短了)。

【输入描述】

第一行一个正整数 ,代表数据组数。

对于每组数据,一行包含一个字符串,代表需要安全检测的密码。

【输出描述】

对于每组数据输出一行,如果满足强度要求输出 Y,否则输出 N。

【样例输入1】

6PAs1s2an1a2bCql3Pa12bsnaab1da3cdPaabdbcdPa2

【样例输出1】

YYYNNN

【样例解释】

  • 密码 PAs1s2an 是安全密码(有8位、包含大写字母 P、A 和数字 1、2)。
  • 密码 1a2bCql3 是安全密码(有8位、包含大写字母 C 和数字 1、2、3)。
  • 密码 Pa12bsna 是安全密码(有8位、包含大写字母 P 和数字 1、2)。
  • 密码 ab1da3cd 不是安全密码(没有大写字母)。
  • 密码 Paabdbcd 不是安全密码(没有数字)。
  • 密码 Pa2 不是安全密码(只有3位,太短了)。

【数据范围】

对于所有测试点,保证 ,并且每组数据密码长度不超过  且至少为 。

参考程序:

'''[GESP202512 三级] 密码强度https://www.luogu.com.cn/problem/B4449'''T = int(input())for _ in range(T):    s = input()if len(s) < 8:        print("N")continue    flag1, flag2 = False, Falsefor c in s:if"A" <= c <= "Z":            flag1 = Trueif"0" <= c <= "9":            flag2 = Trueif flag1 is False or flag2 is False:        print("N")else:        print("Y")

Day06:GESP四级2025.12_优先购买

【提交】

https://www.luogu.com.cn/problem/B4452

【问题描述】

小 A 有  元预算。商店有  个商品,每个商品有商品名 、价格  和优先级  三种属性,其中  为正整数,且  越小代表商品的优先级越高。

小 A 的购物策略为:

  • 总是优先买优先级最高的东西;

  • 如果有多个最高优先级商品,购买价格最低的;

  • 如果有多个优先级最高且价格最低的商品,购买商品名字典序最小的。

小 A 想知道能购买哪些商品。

【输入描述】

第一行两个正整数 ,代表预算和商品数。

之后  行,每行一个商品,依次为 ,代表第  个商品的商品名、价格、优先级。

数据保证不存在两个名字相同的商品。

【输出描述】

按照字典序从小到大的顺序,输出所有购买商品的商品名。

【样例输入1】

20 4apple 6 8bus 15 1cab 1 10water 4 8

【样例输出1】

buscabwater

【数据范围】

对于所有测试点,保证 ,,, ,。商品名仅由小写字母组成且不存在两个相同的商品名。

参考程序:

'''[GESP202512 四级] 优先购买https://www.luogu.com.cn/problem/B4452'''M, N = list(map(int, input().split()))items = []for _ in range(N):    name, price, priority = input().split()    items.append((name, int(price), int(priority)))# 排序规则:优先级升序,价格升序,名字字典序升序items.sort(key=lambda x: (x[2], x[1], x[0]))# 贪心购买bought = []for name, price, _ in items:if price <= M:        bought.append(name)        M -= price# 将购买的商品按字典序排序后输出bought.sort()for name in bought:    print(name)

青少年编程竞赛交流

「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),添加小助手微信,让他邀请大家进入学习群。进群之后大家可以参与定期组织的21天刷题打卡、等级考试测评、教育部白名单比赛辅导以及青少年编程组队竞赛等活动。

最新文章

随机文章