蓝桥等考Python组别
十六
级
第一部分:选择题
1、Python L
16
(15分)
在集合类型操作符中,“&”符号表示( )。
并集
交集
子集
差集
正确答案:
B
2
、Python L
16
(
15
分)
a和b是两个集合
,
“(a | b) - b”
可以用以下哪幅图的阴影部分表示?( )
正确答案:
B
3、Python L
16
(20分)
运行下面程序,输出的结果是( )。
s = set([
2
, 1,
5
,
7
,
2
, 2
, 1, 6
])
print(
len(s)
)
4
5
6
7
正确答案:
B
第二部分:编程题
4
、
Python L
1
6
不同字符的个数
(
2
0
分)
题目名称:
不同字符的个数
题目描述:
输入
一个由大写字母组成的
字符串
a,计算a中有多少个不同的字母
。
输入:
一个
字符串a
,
长度
在
100以内。
输出:
一个正整数,为a中不同字母的个数。
输入样例:
ABCDEA
输出样例:
5
参考程序:
a = input()
s = set(a)
print(len(s))
测试数据:
1.in
ABCDE
1.out
5
2.in
ERTWSWEYUA
2.out
8
3.in
BFG
3.out
3
4.in
WERTWW
4.out
4
5.in
ASWDFGACDSDGHSDWES
5.out
9
5
、Python L
16 打地鼠
(
3
0分)
题目名称:打地鼠
题目描述:
在一条直线上有等距的n个洞,每个洞口都有一只地鼠,下图是
n=7的情景
。
玩家有一个打地鼠的平底锅,它的攻击范围是3。也就是说,平底锅的中心落到
第
x个洞
的
位置,可以打中位置x
-1
、x和x
+1洞口
的地鼠(如果有的话),被打中的地鼠回到洞中不再出来。
已知玩家在一局游戏中击打了m次,以及每次
击打
时平底锅落下的位置x,请你算出还有几只地鼠没被打中。
例如:
n=7,m=2,两次平底锅落下的位置分别为1和3,两次分别打中2只地鼠,还有
3
只没打中,如下图所示:
输入:
第一行一个正整数n,为洞的数量(1<=n<=100);
第二行一个正整数m,为击打的
次数
(1<=m<=10);
第三行,以字符串形式输入m个不相同的正整数(大小在1~10
0
范围内),相邻两个正整数用一个空格分隔,依次表示每次
击打
时平底锅落下的位置。
输出:
一个整数,为游戏结束后没被打中的地鼠数量。
输入样例:
7
2
1 3
输出样例:
3
参考程序
1
:
n = int(input())
m = int(input())
a = input().split(' ')
lis = [int(i) for i in a]
s = set()
for i in lis:
t = (i - 1, i, i + 1)
for j in t:
if j in range(1, n + 1):
s.add(j)
print(n - len(s))
参考程序
2
:
n = int(input())
m = int(input())
lis = [int(i) for i in input().split(' ')]
dic = {}
for i in range(1, n + 1):
dic[i] = 0
for i in lis:
dic[i]+=1
if i>1:
dic[i-1]+=1
if i<n:
dic[i+1]+=1
ans = len([int(v) for k, v in dic.items() if v == 0])
print(ans)
测试数据:
1.in
7
2
1 3
1.out
3
2.in
12
3
2 3 7
2.out
5
3.in
16
2
3 8
3.out
10
4.in
24
5
3 4 5 6 12
4.out
15
5.in
40
4
4 8 10 20
5.out
29
蓝桥杯青少组Python组别16级编程练习真题(第6套,共8套)