怎样快速记忆英语数字,少儿Python每日一题(3):数字排序

极简大道 极简大道 2023-05-19 记忆方法 阅读: 140
摘要: 原题解答本次的题目如下所示(原题出处:蓝桥杯):【编程实现】连续输入5个正整数(正整数之间以英文逗号隔开),然后将五个正整数按照从大到小的顺序输出(输出排序后的正整数之间以英文逗号隔开,相同大小的正整数并列输出)。

原题解答

本次的题目如下所示(原题出处:蓝桥杯):

【编程实现】
连续输入5个正整数(正整数之间以英文逗号隔开),然后将五个正整数按照
从大到小的顺序输出(输出排序后的正整数之间以英文逗号隔开,相同大小的
正整数并列输出)。
输入描述:输入5个正整数以英文逗号隔开
输出描述:将5个正整数按照从大到小的顺序输出,正整数之间英文逗号隔

【样例输入】
3,2,5,5,4
【样例输出】
5,5,4,3,2

本题是一个典型的列表排序题。这道题除了排序的问题外,还涉及到两个问题:第一是同一行输入多个数以逗号隔开;第二是同一行输出多个数以逗号隔开。

我们先来解决第一个问题,首先我们可以通过字符串的split()方法将字符串按照分隔符分隔成列表。但是分隔后的列表每个元素类型是字符串。我们可以使用内置的map()函数可以实现对每个元素的类型转换,因此第一行可以写成这样:

a = list(map(int, input().split(',')))

这里面有一个难点,map()函数属于Python内置函数中的高阶函数,相对比较难掌握。如果不会使用map()函数,可以使用稍微繁琐一点的方法,通过循环更改每个元素的数据类型:

a = input().split()for i in range(len(a)):
    a[i] = int(a[i])

下面我们再来解决第二个问题,列表如何输出成以元素之间以逗号隔开的形式。 在函数里面,大家学习过位置参数的概念,在print中如果将列表的变量名称前加*,将会把列表的每个元素作为print()函数里面的参数,print每个参数打印时默认分隔符为空格,我们将它修改成逗号即可,语句格式:

print(*a, sep=',')

如果没有掌握这个操作也没关系,我们还可以排序以后使用join()方法拼凑成字符串打印,但是要注意的是,使用join()方法时,列表所有元素的数据类型必须是字符串:

for i in range(len(a)):
    a[i] = str(a[i])
s = ','.join(a)print(s)

解决了这两个问题,我们最后再来看排序。

方法一(列表的sort()方法):

a = list(map(int, input().split(',')))
a.sort(reverse=True)print(*a, sep=',')

方法二(内置函数sorted()):

a = list(map(int, input().split(',')))
a = sorted(a, reverse=True)print(*a, sep=',')

其他方法:

如果不觉得麻烦,除了使用Python自带的方法和函数外,也可以自己写排序的语句,具体参照Python的排序算法和查找算法这篇文章。不过考试和比赛时关键是要能实现相关的功能即可,没必要给自己增加代码量和难度。

本题拓展

该题目主要考查排序的使用以及一行多数据的输入和输出,题目难度:★★

在少儿编程竞赛中,一行输入和输出多数据是经常会出现的问题。如果无法理解map()函数和变量名前面加*这两种写法,也可以将这两行代码熟记于心。对于提高自己的编程效率很有帮助。

针对此类题型,这里编一道难度略高于原题的题目:

【编程实现】
连续输入10个正整数(正整数之间以英文逗号隔开),然后将奇数和偶数分类。奇数按照从大到小的顺序排序并输出,以逗号隔开;偶数按照从小到大的迅速排列并输出,以逗号隔开。
输入描述:输入10个正整数以英文逗号隔开
输出描述:分两行输出,第一行为排好序的奇数,数字之间英文逗号隔开;第二行为排好序的偶数,数字之间英文逗号隔开
【样例输入】
8,2,5,7,6,1,9,4,10,3
【样例输出】
9,7,5,3,1

2,4,6,8,10

本题与原题相差不大,多了一个分类整理的问题,我们需要新建两个空列表,并对列表中的值进行判断,奇数放入一个列表中,偶数放入另一个列表中,并分别对两个列表进行排序。

a = list(map(int, input().split(',')))
odd = []
even = []for i in a:    if i % 2 == 1:
        odd.append(i)    else:
        even.append(i)
odd.sort(reverse=True)
even.sort()print(*odd, sep=',')print(*even, sep=',')

其他相关
英语数字游戏,英语的星期一到星期六,为什么和123456没关系?

英语数字游戏,英语的星期一到星期六,为什么和123456没关系?

作者: 极简大道 时间:2023-05-19 阅读: 176
追根溯源,这和“星期”这个概念的诞生有关,一开始,人们是根据天体的运行而制定出这种计时方式的,一周的7天其实分别对应着7颗星:...
英语数字1-10,英语数词综合

英语数字1-10,英语数词综合

作者: 极简大道 时间:2023-05-19 阅读: 170
一、英语数词定义数词主要分为基数词和序数词两大类,表示数量或顺序,可以作主语、宾语、表语、定语、状语和同位语使用。举例:There are ...
英语数字1到10口诀,2023年中考英语高频单词+词组(M~N)

英语数字1到10口诀,2023年中考英语高频单词+词组(M~N)

作者: 极简大道 时间:2023-05-19 阅读: 251
...

高效英语单词编码记忆法,「单词积累」numerous 牛津选必修1U4

作者: 极简大道 时间:2023-05-19 阅读: 179
...
巧记week,巧记小学英语单词

巧记week,巧记小学英语单词

作者: 极简大道 时间:2021-12-29 阅读: 596
小学生刚学英语时的确是充满好奇,但随着时间的推移、难度的增加,学生渐渐失去了刚开始的那股新鲜劲和热情,学习兴趣开始淡薄。在小学英语的课堂教学中,要解决这一矛盾,教师就要充分发挥自己的创造性,优化教学过程,讲究教学艺术,创设不同形式的活动来激发学生学习英语的热情,使他们每个人的学习才能得以充分发挥。运用多种形式呈现单词教师根据需要,以不同形式呈现单词,抓住学生的好奇心,给学生留下深刻的第一印象,可以为单词学习打下良好基础。下面介绍几种单词的呈现方法:直观呈现。课堂中除了语言环境以外,十分重要的就是通过生动形象的直观事物辅助教学。实物、图片、简笔画、幻灯片、多媒体课件等这些形象化的事物容易激发学生的兴趣,同时使学生把英语与实物直接进行联系,便于他们理解词义,也有利于培养他们用英语思维的能力。...
学五笔打字的最简单方法,巧学五笔打字——基本1小时可学会,不用死背字根

学五笔打字的最简单方法,巧学五笔打字——基本1小时可学会,不用死背字根

作者: 极简大道 时间:2021-12-29 阅读: 714
五笔为横,竖,撇,捺点,折。其中横为一笔,竖为二笔,撇为三笔,捺点为四笔,折为五笔这五个笔画在键盘上分五个区:横区,竖区,撇区,捺点区,折区。依照上述两条规律可将每个键分成有规律可寻的,笔画键。比如:横 区:GFDSA键。G键为横一键或为横横键;F键为横二键或横竖D键;D键为横三键或横撇键;S键为横四键或横捺键;A键为横五键或横折键竖 区:HJKLM键。H键为竖一键或为竖横键;J键为竖二键或竖竖键;K键为竖三键或竖撇键;L键为竖四键或竖捺键;M键为竖五键或竖折键...

年度爆文