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

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

  • 2026-10-11 08:06:15
【第39期】21天养成编程习惯:Python刷题第17天

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

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

Day17:CIE一级2025.06_编程题37

夏天快到了,又到了吃西瓜的季节。西瓜是夏天的代表,让人在它的色香味中,感受到夏天的魅力。请你用Python,画出如下图所示的西瓜:

要求:

(1)西瓜左上角坐标为,西瓜红壤左上角坐标为;

(2)整个西瓜半径为100,西瓜红壤半径为90;

(3)西瓜绘制完成后,隐藏画笔。

思路提示:

(1)先画绿色瓜皮,由于西瓜是向上的,所以,在画绿皮之前,需要把画笔右转90度(right(90));

(2)右转90度后开始画绿皮,画完后画笔回到坐标,以便形成完整的半圆,以便填充绿色;

(3)画笔移动到(10,0)坐标;

(4)将画笔右转180度(right(180));

(5)右转180度后开始画红壤,画完后画笔回到(10,0)坐标,以便形成完整的半圆,以便填充红色;

(6)隐藏画笔。

友情提示:

考试平台暂不支持画笔命名:Pen()命令,同学们可以选用其他命令;当然如果使用了Pen()命令,只要程序是正确的,阅卷时依然按照正确处理。

参考程序:

import turtle

# 绘制西瓜绿皮
turtle.right(90)
turtle.fillcolor("green")
turtle.begin_fill()
turtle.circle(radius=100, extent=180)
turtle.home()
turtle.end_fill()

# 到红壤左上角坐标
turtle.forward(10)

# 绘制西瓜红壤
turtle.right(90)
turtle.fillcolor("red")
turtle.begin_fill()
turtle.circle(radius=90, extent=180)
turtle.goto(10, 0)
turtle.end_fill()

# 绘制结束,隐藏画笔
turtle.hideturtle()
turtle.done()

Day17:CIE二级2023.12_蚂蚁觅食

蚂蚁是自然界的大力士:一只蚂蚁能够举起自身体重40倍的物体,能够拖运自身体重1700倍的物体。蚂蚁十分勤劳,为了保证以最快速度完成搬运,能够举起物体时绝不拖运。

现已知某只蚂蚁的体重为50毫克,地上的10块食物重量(单位:毫克)为500, 60000, 25, 1200, 2200, 1800, 10000, 80000, 3000, 65。请帮蚂蚁编程计算,可以举起和需要拖运的食物各有几个?

要求:

(1)必须使用列表或者元组;

(2)输出格式为:“该蚂蚁可以举起的食物有*个,可以拖运的食物有*个。”(不含引号);

(3)提醒:根据题意,“能够举起物体时绝不拖运”,所以拖运的食物和举起的食物不会重复。

参考程序:

w = [500, 60000, 25, 1200, 2200, 1800, 10000, 80000, 3000, 65]
x = 50 * 40
y = 50 * 1700
num1 = 0
num2 = 0
for i in w:
if i <= x:
        num1 = num1 + 1
if x < i <= y:
        num2 = num2 + 1
print("该蚂蚁可以举起的食物有{}个,可以拖运的食物有{}个。".format(num1, num2))

Day17:CIE三级2023.12_编程题36

给定一个十进制整数 n,求出从 1 到 n 的所有整数中出现“1”的个数。

例如,n=2 时,1,2 出现 1 个“1”。

n=12 时,1,2,3,4,5,6,7,8,9,10,11,12,出现 5 个“1”。

现编写一个程序,实现如下功能:输入整数 n,执行程序后,输出该范围内出现“1”的个数。请完善程序。

n = int(input('请输入整数:'))
__________  # ①
i = 1
while __________:  # ②
    x = i
while x > 0:
if __________:  # ③
            count = count + 1
        x //= 10
    __________  # ④
print(n, '范围内 1 的个数有:', count)

参考答案:

① count = 0 或等效答案;

② i <= n 或等效答案;

③ x % 10 == 1 或等效答案;

④ i += 1 或等效答案;


Day17:CIE四级2022.12_第38题

有一个游戏:有两个人,第一个人先从1和2中挑一个数字,第二个人可以在对方的基础上选择加1或者加2,然后又轮到第一个人,他也可以选择加1或者加2,之后再把选择权交给对方,就这样双方交替地选择加1或者加2,谁先加到20,谁就赢了。在不考虑谁输谁赢的情况下,从一开始(以1或2为起点)加到20,有多少种不同的递加过程?比如1,2,4,6,8,10,12,14,16,18,20算一种;2,4,5,7,9,10,12,14,15,17,19,20又是一种。那么一共会有多少种这样的过程呢?我们可以用递归算法来解决这个问题,请补全代码

defguo_cheng(n):
if _____①_____:
return1
return _____②_____


# 输出所有过程的个数
print(guo_cheng(_____③_____))

参考答案:

① n <= 1

② guo_cheng(n - 1) + guo_cheng(n - 2)

③ 20


青少年编程竞赛交流

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

最新文章

随机文章