当前位置:首页>python>【第41期】21天养成编程习惯:Python刷题第01天

【第41期】21天养成编程习惯:Python刷题第01天

  • 2026-09-02 16:40:23
【第41期】21天养成编程习惯:Python刷题第01天

跟老马一起“升级打怪”学编程!

  • 涉及考试:计算机学会编程能力等级认证(GESP)、电子学会等级考试
  • 活动内容:提供不同等级的真题供小朋友们选择练习
  • 备考建议:根据自己备考的等级选择相应题目
  • 附加价值:可作为白名单比赛的备考训练
  • 本月打卡:七月CIE_Python打卡题目

Day01:CIE一级2022.03_编程题37

作图题:

请使用turtle画出如下标志。

要求:

(1)线条颜色为黑色,线条粗细为10;

(2)圆半径为50,填充颜色为蓝色;

(3)等边三角形边长为180;

(4)等边三角形底边中点位置为画布正中心。

参考程序:

注意:仅供参考,画法和顺序,考生可以自行设计,结果符合题意即可。

import turtleturtle.pencolor('black')turtle.pensize(10)turtle.fillcolor('blue')turtle.begin_fill()turtle.circle(50)turtle.end_fill()turtle.penup()turtle.goto(-90, 0)turtle.pendown()for i in range(5):    turtle.forward(180)    turtle.left(120)turtle.home()turtle.done()

Day01:CIE二级2022.12_编程题37

从键盘输入任意字符串,按照下面要求分离字符串中的字符:

1、分别取出该字符串的第偶数位的元素(提醒注意:是按照从左往右数的方式确定字符串的位置);

2、并依次存储到一个列表中;

3、输出这个列表。

参考程序:

注意:仅供参考,考生可以自行设计,结果符合题意即可。

利用while循环:

s = input('请输入字符串:')lst = []i = 1while i<len(s):    lst.append(s[i])    i += 2print(lst)

利用for循环:

s = input('请输入字符串:')lst = []for i in range(1,len(s),2):    lst.append(s[i])print(lst)

Day01:CIE三级2023.05_编程题38

某班“天天向上”小组共有6个同学,姓名和身高数据分别存放在列表a中,编写程序实现小组同学按身高从高到低输出名单,运行结果如图所示:

程序代码如下,请在划线处补充完整:

a = [["李洪全", 135], ["王倩倩", 154], ["吴乐天", 148], ["周立新", 165], ["鲁正", 158], ["杨颖颖", 150]]for i in range(1, len(a)):for j in range(0,____①____):if a[j][1]____②____a[j+1][1]:            a[j], a[j + 1] = a[j + 1], a[j]print("小组名单是:")for i in range(len(a)):    print(____③____)

参考答案:

本题考查冒泡排序算法。从外循环看,6个元素排5趟,应该能全部排整齐。内循环每趟主要从第一个元素开始,相邻元素两两相比,i=1时,j最终取到4,i=2时,j最终取到3,i=3时,j最终取到2,i=2时,j最终取到1,i=1时,j最终取到0,由于range()的终值是取不到的,故第一空应填len(a)-i;根据题目从高到低的要求,若前一个数小于后一个数,则应将其往后移,故第二空应为“<”;由输出结果观察可知,只需要输出排序后列表中的姓名部分,故第三空应填a[i][0]。

① len(a)-i;

② <;

③ a[i][0]。


Day01:CIE四级2025.12_回文单词

某同学收集了很多单词,不同的单词之间用'-'拼接在一起,如'refer-level-face-',他发现有些单词如level,从左往右读和从右往左读该单词是一样的,称之为回文单词。他想统计他收集的单词中有多少个回文单词。

步骤如下:

(1)首先将单词按'-'分割出所有单词,

(2)统计这些单词中回文单词的数量。

编写的Python代码如下,完善划线处的代码。

defrevstr(str):if len(str) == 1:return _____①_____else:return _____②_____word = 'refer-level-face-'wordlst = []s = ''for t in word:if t != '-':        _____③_____else:        wordlst.append(s)        s = ''c = 0for w in wordlst:    rev = revstr(w)if _____④_____:        c += 1print('对称的字符串个数有', c)

参考答案:

按照递归的方式:

① str(或等效答案); (2分)

② revstr(str[1:]) + str[0](或等效答案);(3分)

③ s += t 或 s = s + t(或等效答案); (2分)

④ w == rev(或等效答案)。(3分)

按照非递归方式:

① True(或等效答案); (2分)

② str[::-1] == str(或等效答案);(3分)

③ s += t 或 s = s + t(或等效答案); (2分)

④ rev == True(或等效答案)。(3分)


青少年编程竞赛交流

「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),添加小助手微信,让他邀请大家进入学习群。进群之后大家可以参与定期组织的21天刷题打卡、等级考试测评、教育部白名单比赛辅导以及青少年编程组队竞赛等活动。

最新文章

随机文章