字符三角形-第10届蓝桥杯国赛Python真题精选

字符三角形-第10届蓝桥杯国赛Python真题精选_第1张图片

[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第6讲。

字符三角形,本题是2019年5月25日举行的第10届蓝桥杯青少组Python编程国赛真题,题目要求编程实现用输入的字符构成高为输入数值的不填充等腰三角形。

先来看看题目的要求吧。

一.题目说明

编程实现:

读入一个半角英文字符和一个 2-19 之间的数值,用输入的字符构成高为输入数值的不填充等腰三角形。

输入描述:

第一行:用于构成不填充等腰三角形的一个半角英文字符

第二行:等腰三角形的高,范围在 2-19 之间

输出描述:

按照题意输出的等腰三角形

样例输入:

$

6

样例输出:

字符三角形-第10届蓝桥杯国赛Python真题精选_第2张图片

评判标准:

  • 10 分:能至少一次用读入的半角英文字符符进行输出,而不论输出字符的数量和构成的形状是否符合题意;

  • 30 分:至少对一个评判用例,能输出高度符合输入要求的形状,虽然构成的形状不完全符合题目要求;

  • 50分:完全符合题意,即所有评判用例的输出均正确。

二.思路分析

这是一道打印图形的题目,涉及的知识点包括输入输出处理和for循环。

这里的难点是如何找到等腰三角形的规律,为了方便理解,超平老师绘制了一个表格,如下:

字符三角形-第10届蓝桥杯国赛Python真题精选_第3张图片

这是输入符号为$,数字为6的情况。

其中,第一行只有1个$符号,最后一行有11个$符号,其它每一行都是两个$符号。所以,对于第一行和最后一行,可以单独处理。

第一行,先输出5个空格,然后输出一个$符号即可。

最后一行,直接输出11个$符号。

其它的行,可以分成4段来处理,分别输出空格、$、空格和$,分析过程如下:

第2行:输出4个空格,输出1个$,输出1个空格,输出1个$;第3行:输出3个空格,输出1个$,输出3个空格,输出1个$;第4行:输出2个空格,输出1个$,输出5个空格,输出1个$;第5行:输出1个空格,输出1个$,输出7个空格,输出1个$;

一旦找到这其中的规律,我们就可以将其推广到行数为n的情况,当输入为n的时候:

  • 第1行,输出n - 1个空格,然后输出符号;

  • 第n行,输出 (2 * n - 1)个符号;

  • 其它行,这里假定行号为i ,i从0开始(方便写for循环),先输出 (n - 1 - i)个空格,然后输出1个符号,接着输出(2 * i - 1)个空格,最后输出1个符号;

最大的难点解决了,还有一个小问题,如何输出多个字符呢?

在Python编程中,*运算符除了可以作为乘法使用之外,还有其它很多用法,比如重复容器中和字符串的内容,比如:​​​​​​​

a = [0] * 5 # a = [0,0,0,0,0]s = '$' * 5 # s = '$$$$$'

思路有了,接下来,我们就进入具体的编程实现环节。

三.编程实现

根据上面的思路分析,我们编写代码如下:

字符三角形-第10届蓝桥杯国赛Python真题精选_第4张图片

简单说明3点:

1). 默认情况下,用户从键盘输入的都是字符串,对于整数,需要使用int()函数进行转换;

2). 对于空格,直接使用' ' 或" ",引号里面要打一个空格;

3). 字符串连接运算,最简的就是使用+;

你可以输入各种不同的符号,打印出对应的符号等腰三角形。至此,整个程序就全部完成了。

四.总结与思考

本题的分数为50分,代码在10行左右,涉及到的知识点包括:

  • 输入和输出;

  • 字符串操作,包括重复和连接;

  • *运算符的妙用;

  • +运算符的妙用;

  • for...in循环;

  • 多分支条件语句;

题目难度一般,关键是要找到字符输出的规律,与其说是考孩子的编程知识,不如说是考查孩子的推理能力和逻辑思维能力。

对于这类找规律的问题,超平老师建议你在纸上画图或表格,正所谓一图在手,啥也不愁。然后使用归纳法从特殊到一般,如此一来,问题就迎刃而解了。

至于知识点层面,本题涉及到的都是一些常用的知识点,比较特殊一点的就是*和+这两个运算符的妙用。即使一时没有想到这些,也可以使用其它来实现的。

超平老师给你留一个思考题,本题打印的是一个正着放的三角形,如果要打印一个倒立的等腰三角形,你知道如何实现吗?

字符三角形-第10届蓝桥杯国赛Python真题精选_第5张图片

你还有什么好的想法和创意吗,也非常欢迎和超平老师分享探讨。

如果你觉得文章对你有帮助,别忘了点赞和转发,予人玫瑰,手有余香

需要源码的,可以移步至“超平的编程课”gzh。

你可能感兴趣的:(蓝桥杯,python,少儿编程竞赛,STEMA测评)