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

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

  • 2026-09-02 21:41:32
【第41期】21天养成编程习惯:Python刷题第05天

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

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

Day05:CIE一级2022.09_编程题37

按照要求绘制一个五角星:

1、海龟初始位置的坐标为(0,0);

2、设置画笔大小为5;

3、画笔颜色为红色(red);

4、五角星填充颜色为黄色(yellow);

5、五角星大小不限,但是要能清晰看出是五角星,并且完全在考试平台上显示出来。

提示:五角星每个角为36度。

参考程序:

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

import turtleturtle.pensize(5)turtle.pencolor('red')turtle.fillcolor('yellow')turtle.begin_fill()for i in range(5):    turtle.forward(200)    turtle.right(144)turtle.end_fill()turtle.done()

Day05:CIE二级2023.05_统计语句中指定字符的个数

要求:

(1)统计的语句为:Were you born on August 21, 1994

(2)要求使用条件语句,统计该句中所有英文字母、数字的个数的和(不包括空格、逗号等标点符号);

(3)输出一个整数,表示所有英文字母和数字的个数的和。

参考程序:

s = 'Were you born on August 21, 1994'count = 0for i in s:if ('0' <= i <= '9') or ('a' <= i <= 'z') or ('A' <= i <= 'Z'):        count += 1print(count)

Day05:CIE三级2023.03_编程题36

百钱买百鸡是我国古代数学家张丘建在《算经》一书中提出的数学问题,问题的原文是:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?这个问题用现代文描述起来就是:公鸡5文钱1只,母鸡3文钱1只,小鸡3只1文钱。如果用100文钱买100只鸡,那么公鸡、母鸡和小鸡各应该买多少只呢?请完成下面程序中空白处的语句,实现对问题的求解,找出所有符合题目要求的买鸡方案,并输出。

# 设cock、hen、chicken分别为公鸡、母鸡和小鸡的数量,# num为符合题目要求的方案数目。num = 0for cock in range(1, 21):for hen in range(1, 34):for chicken in____①____:            if____②____== 100and cock * 5 + hen * 3 + chicken / 3 ==____③____:                num = ____④____                print(f'第 {num} 种方案是:公鸡{cock}只,母鸡{hen}只,小鸡{chicken}只')

参考答案:

①range(1, 101)或等效答案;

②cock + hen + chicken或等效答案;

③100或等效答案;

④num + 1或等效答案。


Day05:CIE四级2023.09_第37题

一个列表中存在n个数据,可以用分治算法来找到其中的最小值。具体过程如下:如果列表元素的个数小于等于2的时候,经过一个判断就找到其中的最小值,所以可以先把数据从中间划分为左右两部分,然后通过递归把每一部分再划分为左右两部分,直到数据规模小于等于2的时候,返回结果,然后通过递归到最后为两个数据对比,我们就可以找到最小值。

请根据以上算法过程,补全代码。

# 求列表中小于两个元素的最小值defget_min(number):if len(number) == 1:return _____①_____  else:if number[1] > number[0]:return number[0]else:return number[1]defsolve(number):    n = len(number)if n <= 2:return get_min(number)else:# 将整个列表分为左右两部分        left_list, right_list = _____②_____, number[n // 2:]# 递归(树),分治        left_min, right_min = solve(left_list), _____③_____return get_min([left_min, right_min])test_list = [5, 11, 3, 2, 7, 9]print(solve(test_list))

参考答案:

①number[0]

②number[:n // 2]

③solve(right_list)


青少年编程竞赛交流

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

最新文章

随机文章