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

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

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

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

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

Day18:CIE一级2023.03_编程题36

小海龟最近正在学习中国传统文化,小海龟对传统节日元宵节特别感兴趣,元宵节作为中国传统节日又被称为灯节,小海龟为了庆祝元宵节,它想绘制一个彩色的荷花灯图形,如下图所示:

要求:

(1)彩色荷花灯由5个花瓣组成,画笔颜色为粉色(pink);

(2)相邻花瓣的对称轴夹角的角度为30度(提醒同学们程序中的旋转角度可不一定是30度);

(3)单个花瓣的弧度为90度,半径为70;

(4)最左侧花瓣的上下两个线条中,上线条是小海龟左转105度后利用画圆工具绘制而成的;

(5)最后小海龟隐藏。

参考程序:

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

import turtleturtle.pencolor('pink')turtle.left(105)for i in range(5):    turtle.circle(70, 90)    turtle.left(90)    turtle.circle(70, 90)    turtle.left(60)turtle.hideturtle()turtle.done()

Day18:CIE二级2023.03_编程题37

编写程序帮老师对英语试卷中的英文字母、数字和其他字符(注意:包括空格)进行分类并统计每种字符的数量。

输入样例:

**Welcome to 2023~!

输出样例:

字母:Welcometo,共9个数字:2023,共4个其它字符:**  ~!,共6个

参考程序:

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

程序1:

dic = {'字母': ['', 0], '数字': ['', 0], '其它字符': ['', 0]}s = input()for i in s:if i.lower() in'abcdefghijklmnopqrstuvwxyz':        dic['字母'][0] += i        dic['字母'][1] += 1elif i in'0123456789':        dic['数字'][0] += i        dic['数字'][1] += 1else:        dic['其它字符'][0] += i        dic['其它字符'][1] += 1print('字母:{},共{}个'.format(dic['字母'][0],dic['字母'][1]))print('数字:{},共{}个'.format(dic['数字'][0],dic['数字'][1]))print('其它字符:{},共{}个'.format(dic['其它字符'][0],dic['其它字符'][1]))

程序2:

s = input()letter = ''number = ''other = ''for i in s:if i >= 'a'and i <= 'z'or i >= 'A'and i <= 'Z':        letter += ielif i >= '0'and i <= '9':        number += ielse:        other += iprint('字母:{},共{}个'.format(letter, len(letter)))print('数字:{},共{}个'.format(number, len(number)))print('其它字符:{},共{}个'.format(other, len(other)))

程序3:

s = input()letter = ''number = ''other = ''for i in s:if i.isalpha():        letter += ielif i.isdigit():        number += ielse:        other += iprint('字母:{},共{}个'.format(letter, len(letter)))print('数字:{},共{}个'.format(number, len(number)))print('其它字符:{},共{}个'.format(other, len(other)))

Day18:CIE三级2022.12_编程题37

在三位数的自然数中,找出至少有一位数字是5的,至少能被3整除的所有整数,并统计个数,具体代码如下:

count = 0lst = []for i in range(____①____):if i % 3 == 0:        a = i % 10        b = i // 10 % 10        c = ____②____if ____③____:            count += 1            lst.append(i)print("这样的三位数有:", lst)print("总数量有:", count)

参考答案:

① 100, 1000 或者 100, 1000, 1;

② i//100;

③ a==5 or b==5 or c==5。


Day18:CIE四级2021.09_第36题

在编写抽奖程序时,为了保证一个人只有一次中奖机会,要检查新抽出来的数字是不是已经被抽中过了。

一种办法是将已经中过奖的人员编号存放在test_list里面,然后每抽出一个新的人员编号,判断它是否在中奖人员列表中。

如果没有在中奖人员列表中,说明中奖号码有效,并将它保存进中奖人员列表;如果已经在里面了,就再生成一个新的人员编号。

请你补全下面的代码,实现判断一个数字是否在列表中的功能。

# 子问题算法(子问题规模为1)defis_in_list(init_list, num):if init_list[0] == num:returnTrueelse:returnFalse# 分治法deffind_out(init_list, num):    n = len(init_list)if _____①_____  # 如果问题的规模等于1,直接解决return is_in_list(init_list, num)# 分解(子问题规模为n/2)    left_list, right_list = _____②_____# 递归(树),分治,合并    res = find_out(left_list, num) _____③_____ find_out(right_list, num)return resif __name__ == "__main__":# 测试数据    test_list = [18, 43, 21, 3, 28, 2, 46, 25, 32, 40, 14, 36]# 查找    print(_____④_____)  # True

参考答案:

① n==1:或其他正确答案

② init_list[:n//2],init_list[n//2:]或其他正确答案

③ or或其他正确答案

④ find_out(test_list,25) 或其他正确答案


青少年编程竞赛交流

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

最新文章

随机文章