用于蓝桥杯的自我练习
第一天:基础练习+语法回顾
前言
随着2023年蓝桥杯比赛将近,对比赛真题进行分析和练习。
一、PYTHON每日训练(基础)
二、1.A+B问题
资源限制
时间限制:1.0s
内存限制:256.0MB
问题描述:输入A、B,输出A+B。
输入格式:输入的第一行包括两个整数,由空格分隔,分别表示A、B。
输出格式:输出一行,包括一个整数,表示A+B的值。
样例输入12 45
样例输出 57
数据规模与约定 -10000 <= A, B<= 10000
a,b=map(int,input().split())
print(a+b)
此题出现了两个内置函数map和split,map在这里的意思是映射的意思,会根据提供的函数对指定序列做映射,map的语法:map(function,iterable),map函数的第一个参数是函数,第二个是序列。函数返回值作为新的元素储存起来。相当于把int函数映射到input函数上,大大减少了代码的内存消耗。split()让输入的值由空格分隔。
2.序列求和
资源限制
时间限制:1.0s 内存限制:256.0MB
问题描述
求1+2+3+...+n的值。
输入格式
输入包括一个整数n。
输出格式
输出一行,包括一个整数,表示1+2+3+...+n的值。
样例输入
4
样例输出
10
n=int(input())
res=n+n*(n-1)/2
print(int(res))
这题比较简单,要注意限制条件,直接用求和公式输出即可。
3.水仙花数
资源限制
内存限制:512.0MB Python时间限制:5.0s
问题描述
153是一个非常特殊的数,它等于它的每位数字的立方和,即153=1×1×1+5×5×5+3×3×3。
编程求所有满足这种条件的三位十进制数。
输出格式
按从小到大的顺序输出满足条件的三位十进制数,每个数占一行。
l=[]
for n in range(100,1000):
a=n//100
b=n//10%10
c=n%100%10
sum=a*a*a+b*b*b+c*c*c
if sum==n:
l.append(n)
for n in l:
print(n)
思路:这里用到了三位数的分解,a=n//100#百位,b=n//10%10#十位,c=n%100%10#个位,还有列表l的存储和列表数据的遍历。
4.门牌制作
问题描述:
小蓝要为一条街的住户制作门牌号。
这条街一共有 20202020 位住户,门牌号从 11 到 20202020 编号。
小蓝制作门牌的方法是先制作 00 到 99 这几个数字字符,最后根据需要将字符粘贴到门牌上,例如门牌 1017 需要依次粘贴字符 1、0、1、71、0、1、7,即需要 11 个字符 00,22 个字符 11,11 个字符 77。
请问要制作所有的 11 到 20202020 号门牌,总共需要多少个字符 2?
s=0
for i in range(2021):
s+=str(i).count('2')#当门牌号出现2则加1
print(s)
本题是一道填空题,最后答案为624,通过循环遍历出0-2020中出现了多少个字符2
5.成绩评定
题目描述
给出一百分制成绩,要求输出成绩等级‘A’、‘B’、‘C’、‘D’、‘E’。 90分以及90分以上为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E。
输入格式
一个整数0-100以内
输出格式
一个字符,表示成绩等级
样例输入
90样例输出
A
s=int(input())
if s>=0 and s<60:
print('E')
elif s>=60 and s<70:
print('D')
elif s>=70 and s<80:
print('C')
elif s>=80 and s<90:
print('B')
elif s>=90 and s<=100:
print('A')
else:
print('输入无效,请重新输入')
这题也是一个简单if和elif的运动,是基础语法题。