目录
python查找支撑数
一、题目要求
1、编程实现
2、输入输出
二、算法分析
三、程序代码
四、程序说明
五、运行结果
六、考点分析
七、 推荐资料
1、蓝桥杯比赛
2、考级资料
3、其它资料
python查找支撑数
2022年3月 python编程等级考试级编程题
一、题目要求
1、编程实现
查找“支撑数”。在已知一组整数中,有这样一种数非常怪,它们不在第一个,也不在最后一个,而且刚好都比左边和右边相邻的数大,你能找到它们吗 ?输入一个数组,输出每个支撑数的数值以及它们在数组中位置编号。
请编写程序实现上述功能,补全代码。
s = input()
x = s.split(' ')
a = []
for i in range(0,len(x)):
a.append(int(①))
b = []
c = []
for i in range(1,②):
if (a[i]>a[i-1] and ③):
b.append(a[i])
c.append(④)
for i in range(⑤):
print(b[i],' ',c[i])
2、输入输出
输入描述:输入一组数字
输出描述:输出每个支撑数的数值以及它们在数组中位置编号
输入样例:
1 3 2 4 1 5 3 9 7 10 8 23 85 43
输出样例:
3 2
4 4
5 6
9 8
10 10
85 13
二、算法分析
-
从题目分析可以得出,是要给输入的一串数字找出对应的支撑数,题目要告知支撑数的定义和规则,同时也给定了一部分代码
-
从给定的题目和部分程序中可以看到,x列表是存放输入的所有数字的字符串类型,a列表是对应的整数类型,缺省的第一部分就是将字符串类型值转换成整型类型值,所以填入的应该是:x[i]
-
b列表存放的是符合条件的元素,c列表是该元素对应的索引号;缺省的第二部分就是a列表中从第二项到倒数第二项的值,所以填入的应该是:len(a)-1
-
缺省的第三部分就是当前元素大于右边的元素,所以填入的应该是:a[i]>a[i+1]
-
缺省的第四部分就是将当前符合条件的元素的索引号加入c列表中,但是要知道索引号在列表中是从0开始的,所以填入的应该是:i+1
-
缺省的第五部分就是遍历符合要求的所有元素,然后输出,这里可以是列表b或者列表c的长度,所以填入的应该是:len(b[i]) 或者 len(c[i])
本文作者:小兔子编程 作者首页:https://blog.csdn.net/frank2102
三、程序代码
s = input()
x = s.split(' ')
a = []
for i in range(0,len(x)):
a.append(int(x[i]))
b = []
c = []
for i in range(1,len(a)-1):
if (a[i]>a[i-1] and a[i]>a[i+1]):
b.append(a[i])
c.append(i+1)
for i in range(len(b)):
print(b[i],' ',c[i])
四、程序说明
- 代码通过 input() 函数获取一个字符串作为输入,并将其赋值给变量 s
- 接下来,代码使用 split(' ') 函数将字符串 s 按空格进行切割,得到一个切割后的字符串列表,并将其赋值给列表 x
- 然后,代码创建了一个空列表 a。 接下来的 for 循环通过遍历列表 x,将其中的每个元素转换为整数,并将其添加到列表 a 中
- 然后,创建了两个空列表b 和 c,代码继续使用两个 for 循环。第一个循环遍历 a 列表中的索引值(从 1 开始到 len(a)-1 结束,即第二个元素到倒数第二个元素),并使用两个条件判断语句检查当前元素是否比前后两个元素都大。如果满足条件,则将该元素添加到列表 b 中,并将其索引值(加 1)添加到列表 c 中
- 最后,代码使用另一个 for 循环遍历列表 b,并输出其中的每个元素以及其对应的索引值。
五、运行结果
1 3 2 4 1 5 3 9 7 10 8 23 85 43
3 2
4 4
5 6
9 8
10 10
85 13
六、考点分析
难度级别:中等,这题相对而言还是有一点小难度,难在列表相关操作,具体主要考查如下:
- input函数:Python 中 input() 函数接受一个标准输入数据,返回为 string 类型。
- int函数:将传入的参数强制转换成整数
- list函数:强制将参数转化成列表对象
- 列表对应的操作:len、min、sort等等函数的使用
- 学会if条件判断语句的使用,满足一定条件才能执行后面的语句
- 学会if...else...双分支语句的使用,条件满足执行一种处理,不满足执行另一种处理
- for循环:for循环可以遍历任何有序的项及列表元素等等。
- range函数:rang(a,b),循环的时候是不包括b的,所以我们这个案例中要转变一下,要想包含b,就应该写成range(a,b+1)
- print函数:用于打印输出,最常见的一个函数。
- 学会分析题目,算法分析,将复杂问题模块化,简单化,从中找到相应的解题思路
- 充分掌握分支语句、循环语句和简单算法知识的使用及输入输出函数的用法
PS:方式方法有多种,小朋友们只要能够达到题目要求即可!
七、 推荐资料
- 所有考级比赛学习相关资料合集【推荐收藏】
1、蓝桥杯比赛
-
蓝桥杯python选拔赛真题详解
-
蓝桥杯python省赛真题详解
-
蓝桥杯python国赛真题详解
-
历届蓝桥杯科技素养计算思维真题解析
2、考级资料
-
python等级一级真题解析【电子学会】
-
python等级二级真题解析【电子学会】
-
python等级三级真题解析【电子学会】
-
python等级四级真题解析【电子学会】
3、其它资料
-
初学python100例
- 历届蓝桥杯scratch国赛真题解析
- 历届蓝桥杯scratch省赛真题解析
- 历届蓝桥杯scratch STEMA选拔赛真题解析
- 历届蓝桥杯科技素养计算思维真题解析
- 画图-scratch编程考级99图
- 电子学会历年scratch等级考试一级真题解析
- 电子学会历年scratch等级考试二级真题解析
- 电子学会历年scratch等级考试三级真题解析
- 电子学会历年scratch等级考试四级真题解析
- 零基础学习scratch3.0【入门教学 免费】
- 零基础学习scratch3.0【视频教程 114节 免费】