大家好,又见面了,我是你们的朋友全栈君。
目录
十一届蓝桥杯python B组
试题A:门牌制作
题目
思路
将整数转换成字符串,循环取数
程序实现
num = 0
for i in range(1,2021):
num +=str(i).count('2') # int 要转换成字符串
print(num)
试题B:寻找2020
题目
思路
程序实现
使用知识点
试题C:跑步训练
题目
【问题描述】
小蓝每天都锻炼身体。
正常情况下,小蓝每天跑 1 千米。
如果某天是周一或者月初(1 日),为了激励自己,小蓝要跑2千米。如果同时是周一或月初,小蓝也是跑2千米。
小蓝跑步已经坚持了很长时间,从2000年1月1日周六(含)到2020年10月1日周四(含)。
请问这段时间小蓝总共跑步多少千米?
思路
使用模块 datetime 方法
程序实现
import datetime
start = datetime.date(2000,1,1)
end = datetime.date(2020,10,1)
days = datetime.timedelta(days=1) # 用以可用于计算的一天 timedelta代表两个时间之间的时间差
res = 0
while start <= end:
if start.day == 1 or start.weekday() == 1:
res += 2
else:
res += 1
start += days
print(res)
使用知识点
- 日历计时
Python datetime模块详解、示例
datetime.date(2000,1,1).day 读取现在日期
datetime.date(2000,1,1).weekday() 星期一到七
- weekday(…)方法返回的周一为 0,周日为 6
- isoweekday(…)方法返回的周一为1,周日为7
datetime.timedelta(days=1) 用来计算日期之间的差 - 可以使用 datetime.date(2000,1,1) + datetime.timedelta(days=1) 表示日期加1
试题D:蛇形填数
题目
思路
[1,1]+4=[2,2]
[2,2]+8=[3,3]
[3,3]+12=[4,4]
程序实现
n = 20
num_sum = 1
for i in range(1,n+1): # 忘了range不执行最后一个,要n+1
num_sum = num_sum + 4*(i-1)
print(num_sum)
# 输出 761
试题F:成绩分析
题目
思路
按行读取,求最大最小累加求均值
程序实现
n = int(input())
max_num = 0
min_num = float("inf")
add_num = 0
for i in range(n):
a = int(input())
max_num = max(max_num,a)
min_num = min(min_num,a)
add_num = add_num + a
avr = add_num/n
average = format(avr, '.2f')
print(max_num)
print(min_num)
print(average )
使用知识点
- 读取好多行的输入可以用
for i in range(打算输入的行数):
a = int(input()) - 取两位小数
方法一:print(round( 输入 ,2))
方法二:print(format( 输入 ,’.2f’))
方法三:print (’%.2f’ %( 输入 ))
使用:
jige = format(jige / n, ‘.2f’) # format方法可以四舍五入,但返回的是字符串形式
print(f’{ __ }%’) # 切片,取整数部分
- 变成百分率方法:print(f’{****}%’)
试题G:单词分析
题目
思路
使用max函数,按照s中字母的数量排序
程序实现
s = list(input())
ans = max("abcdefghijklmnopqrstuvwxyz",key=s.count)
print(ans)
print(s.count(ans))
使用知识点
max(iterable, *[, key, default])
max(arg1, arg2, *args[, key])
- 默认数值型参数,取值大者
- 字符型参数,取字母表排序靠后者
- key:可做为一个函数,用来指定取最大值的方法。
- default:用来指定最大值不存在时返回的默认值。
- arg1:字符型参数/数值型参数,默认数值型
- 传入多个参数取最大值(元组、列表、集合)
- 传入可迭代对象(比如列表)时,取其元素最大值
# key的使用
s = [{
'name': 'li', 'age': 24},{
'name': 'he', 'age': 45},{
'name': 'she', 'age': 45}]
b = max(s, key=lambda x: x['age'])
print(b)
# 输出
#{'name': 'he', 'age': 45}
key中两个计数相同时,输出前一个
- 字典序就是按照字典的顺序(a-z, 1-9)
十一届蓝桥杯python C组
试题A:
题目
蓝桥杯历届试题:回文日期
Python获取每一位的数字,并返回到列表:
方法一:
while value:
result.append(value % 10)
value = value // 10
# 逆序,按正常的顺序返回
result.reverse()
方法二:
list(map(int, str(value)))
方法三:
#divmod()是内置函数,返回整商和余数组成的元组
result = []
while value:
value, r = divmod(value, 10)
result.append(r)
result.reverse()
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/127953.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...