蓝桥等考Python组别
十五
级
第一部分:选择题
1、Python L
15
(15分)
运行下面程序,输出的结果是( )。
dic
= {"
red
": 1
0
, "
blue
": 2
0
, "
yellow
": 3
0
, "
green
": 4
0
}
print(
dic.get('
red
'
)
)
10
20
30
40
正确答案:
A
2
、Python L
15
(
15
分)
运行下面程序,输出的结果是( )。
d
ic
= {'A': "
dog
", 'B': "
tiger
", 'C': "b
ear
"
, 'D':
"
cat
"}
del dic['B']
print(len(dic))
1
2
3
4
正确答案:
C
3、Python L
15
(20分)
运行下面程序,输出的结果是( )。
d
ic
= {'
A
A':
1
, '
B
B': 2, 'C
C
': 3
, '
D
D': 4
}
for k, v in dic.items():
print(
v
)
AA
BB
CC
DD
A
A
1
BB 2
CC 3
DD 4
1
2
3
4
不输出
任何内容
正确答案:
C
第二部分:编程题
4
、
Python L
1
5
字符串镜像
(
2
0
分)
题目名称:
字符串镜像
题目描述:
输入一个
字符串,将这个字符串倒序,再与原字符串连接在一起输出。原字符串在前,倒序后的字符串在后。
例如:
输入apple,将apple倒序后是elppa,输出appleelppa。
输入:
一个
字符串,长度不超过100。
输出:
一个字符串,为将输入字符串倒序,再与原字符串连接在一起的字符串。
输入样例:
apple
输出样例:
appleelppa
参考程序:
n = input()
print(
n + n[: : -1]
)
测试数据:
1.in
apple
1.out
appleelppa
2.in
123456
2.out
123456654321
3.in
Hello,World!
3.out
Hello,World!!dlroW,olleH
4.in
A
4.out
AA
5.in
I have a dream
5.out
I have a dreammaerd a evah I
5
、Python L
15
乘车系统
(
3
0分)
题目名称:
乘车系统
题目描述:
地铁的每站都有检票闸机,乘客进站和出站都要刷乘车卡,每刷一次卡,系统会记录持卡人的卡号(卡号不会有重号)。
地铁乘车系统根据刷卡的记录,可以计算出一段时间内的3项运营数据:
1.完成乘车的人次:进站和出站各刷一次卡,算作一次乘车,多次乘车计数累计;
2.正在乘车的人:进站后还没出站的乘客,计入正在乘车的人数;
3.乘客总人数:乘客人数指有刷卡记录的乘客总数,多次乘车不重复计数。
已知一段时间内的全部刷卡记录,请分别计算完成乘车的人次、正在乘车的人数和乘客总人数。
例如:
系统获取的刷卡记录(卡号)是4 8 4 2 11 4 2 4 8 4,其中,
卡号为8的乘客乘车1次,已出站;
卡号为2的乘客乘车1次,已出站;
卡号为4的乘客乘车3次,前2次已出站,第3次还没出站;
卡号为11的乘客乘车1次,还没出站。
可知:
完成乘车的人次为4,分别是:4(用卡号代表乘客)两次,2和8各1次;
正在乘车的人数为2,是4和11;
乘客总人数为4,分别是2,4,8,11。
输入:
一个字符串,包括
若干个
整数号码
(
整数
的个数不超过
100
),同一
号码
可能出现多次,相邻两个
号码
用一个空格分隔,表示
一段时间内,
系统
记录的全部刷卡卡号记录
。
输出:
三行,每行一行整数,分别是:这段时间内完成乘车的人次、正在乘车的人数和乘客总人数。
输入样例:
4 8 4 2 11 4 2 4 8 4
输出样例:
4
2
4
参考程序
1
:
lis = [int(i) for i in input().split(' ')]
dic = {} #建立空字典
for i in lis:
dic[i] = lis.count(i) #将“元素——出现次数”作为一个键值对,加入字典
ans
1
= 0
ans
2
= 0
ans
3
= len(dic)
for k, v in dic.items(): #遍历字典,k是键,v是值
ans
1
+= v // 2
if v % 2 == 1:
ans
2
+= 1
print(ans
1
)
print(ans
2
)
print(ans
3
)
参考程序
2
:
a = [int(i) for i in input().split(' ')]
a.sort()
s = [] #建立空栈
p = 0 #栈内元素个数
ans1 = 0
ans2 = 0
ans3 = 0
for i in range(len(a)):
if p == 0: #栈为空
s.append(a[i]) #入栈
p += 1
elif a[i] == s[p-1]: #与栈顶相同
del s[p-1] #栈顶出栈
p -= 1
ans1 += 1
else: #与栈顶不同
s.append(a[i]) #入栈
p += 1
print(ans1)
print(len(s)) #还没出站的人数等于栈内元素个数
print(len(set(a)))
测试数据:
1.in
4 8 4 2 11 4 2 4 8 4
1.out
4
2
4
2.in
1 2 4 7 11
2.out
0
5
5
3.in
1 2 3 2 1 4 2 2 7 2 4 8 4
3.out
4
5
6
4.in
4 8 4 2 11 4 2 4 8 1 1 2 2
4.out
6
1
5
5.in
4 4 2 2 2 2 2 2 1 4 1
5.out
5
1
3
蓝桥杯青少组Python组别15级编程练习真题(第8套,共8套)