平方数键值对-第11届蓝桥杯国赛Python真题精选

平方数键值对-第11届蓝桥杯国赛Python真题精选_第1张图片

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

平方数键值对,本题是2020年10月30日举办的第11届蓝桥杯青少组Python编程国赛真题,题目要求使用字典输出1到n的所有键值对。

先来看看题目的要求吧。

一.题目说明

提示信息:

平方是一种运算,比如:a的平方表示a x a。

例如:2的平方为4(也就是2*2的积)

例如:4的平方为16(也就是4*4的积)

编程实现:

输入一个正整数n,将1到n之间所有正整数(包含1和n)作为python字典的键,将正整数的平方作为对应键的值,组成n个键值对。输出1到n的所有键值对(格式要求:每个键值对之间以英文逗号隔开,输出的内容前后中间不能有空格及大括号)。

输入描述:

输入一个正整数n

输出描述:

输出1到n的所有键值对(按照编程实现要求输出)

样例输入:

5

样例输出:

1:1,2:4,3:9,4:16,5:25

二.思路分析

这是一道格式化输出的题目,涉及到的知识点主要包括循环和输出格式控制。

根据题目的要求,需要先构造一个字典,将数字n作为键,n * n作为对应的值,然后按要求输出。

实际上,从输出的结果来看,不需要字典也是可以的。这里的难点是怎么让键值对以逗号隔开,但最后一个键值对是没有逗号的。

通常有两种思路来实现,一是先处理前面n-1个键值对,然后再单独处理最后一个键值对;二是将键值对按要求保存到列表中,然后再使用join()函数进行连接。

对于思路一,要充分利用print()函数的两个参数,如下:

sep参数:设置分隔对象的符号,默认是空格;end参数:设置输出语句以什么结尾,默认值是换行符;

对于思路二,则需要掌握join()函数的用法,如下:

str.join(sequence)

该函数以str作为分隔符,将sequence中所有的元素(字符串表示)合并为一个新的字符串。

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

三.编程实现

根据上面的思路分析,我们使用两种方法来编写程序:

  • 利用print()函数;

  • 妙用join()函数;

1. 利用print()函数

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

平方数键值对-第11届蓝桥杯国赛Python真题精选_第2张图片

代码不难,简单说明两点:

1). 题目要求从1开始,因此range函数需要两个参数,第一个参数为1;

2). 在Python编程中,运算符"**"表示乘方运算,也可以使用 i * i。

2. 妙用join()函数

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

平方数键值对-第11届蓝桥杯国赛Python真题精选_第3张图片

简单说明两点:

1). res列表用于保存键值对字符串,字符串的格式为"1:1"; 

2). 在构造字符串的时候,需要使用str()函数将整数转成字符串再进行连接。

输入数字5,结果如下:

图片

输入数字8,结果如下:

图片

至此,整个程序就全部完成了,你也可以输入不同的数字来测试效果

至此,整个程序就全部完成了,你也可以输入不同的数字来测试效果。

四.总结与思考

本题代码在5行左右,涉及到的知识点包括:

  • 循环语句,主要for...in循环;

  • 输入输出处理,重点是print()函数;

  • 字符串处理;

本题比较简单,基本上是送分题,关键是熟练掌握Python格式化输出的细节,尤其是print()函数的sep和end参数。

在平常学习Python编程的时候,尽量多了解并使用Python内置函数,这样可以大大提升编程效率,也避免重复造轮子。

Python之所以大受欢迎,其中很重要的一点就是有大量的内置函数和第三方模块,一定要多运用。

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

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

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

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