【青少年编程】黄羽恒:加减乘除法小测试
发布日期:2021-06-30 22:51:36 浏览次数:2 分类:技术文章

本文共 2852 字,大约阅读时间需要 9 分钟。

「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),公众号后台回复【Scratch】或【Python】,即可进入。如果加入了之前的社群不需要重复加入。

微信后台回复“资料下载”可获取以往学习的材料(视频、代码、文档)。

编程题

“加减乘除法小测试”是来自「青少年编程竞赛交流群」中 黄羽恒 小朋友的作品。

加减乘除法是小朋友们进行口算训练的必备技能。

首先,选择要测试多少组,每组包含四个题目,加减乘除法各一个。

其次,按照加法、减法、乘法、除法的顺序进行出题,其中减法结果必须为正数。

再次,回答正确,显示“恭喜你答对了!好棒",回答错误,显示"很遗憾答错了!呜呜"并给出正确的结果。

最后,给出本次小测试的分数,按照满分100计算。

1. 思路分析

这个题目相对简单,主要注意的有三点。

第一:进行除法计算的时候,分母不能为零,这块需要进行判断。

第二:为了保证每次测试的加减乘除法都不重复,需要用到随机数。

第三:输出结果用到print语句,为了更好的交互体验需要配置print语句中end这个参数。

def print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False):

print()函数,将objects以字符串表示的方式格式化输出到流文件对象file里。

  • objects以字符串表示的方式格式化输出到流文件对象file里。其中所有非关键字参数都按str()方式进行转换为字符串输出;
  • 关键字参数sep是实现分隔符,比如多个参数输出时想要输出中间的分隔字符;
  • 关键字参数end是输出结束时的字符,默认是换行符\n
  • 关键字参数file是定义流输出的文件,可以是标准的系统输出sys.stdout,也可以重定义为别的文件;
  • 关键字参数flush是立即把内容输出到流文件,不作缓存。

2. 程序代码

import randomimport timequestions = int(input('你要测试几组(1组4题、1加、1减、1乘、1除,除不净保留2位小数)题:'))score = 100diff = score / questions / 4for i in range(questions):    time.sleep(1)    # 加法    addend1 = random.randint(0, 100)    addend2 = random.randint(0, 100)    sum_right = addend1 + addend2    print(addend1, '+', addend2, '=', end=' ')    sum_answer = int(input(''))    if sum_answer == sum_right:        print('恭喜你答对了!  o(≧v≦)o~~好棒\n')    else:        print('很遗憾答错了!  (╥﹏╥)~~呜呜')        print(addend1, '+', addend2, '=', sum_right, '\n')        score -= diff    time.sleep(1)    # 减法    while True:        minuend = random.randint(0, 100)        subtraction = random.randint(0, 100)        sum_right = minuend - subtraction        if sum_right >= 0:            break    print(minuend, '-', subtraction, '=', end=' ')    sum_answer = int(input(''))    if sum_answer == sum_right:        print('恭喜你答对了!  o(≧v≦)o~~好棒\n')    else:        print('很遗憾答错了!  (╥﹏╥)~~呜呜')        print(minuend, '-', subtraction, '=', sum_right, '\n')        score -= diff    time.sleep(1)    # 乘法    multiplier1 = random.randint(0, 20)    multiplier2 = random.randint(0, 10)    sum_right = multiplier1 * multiplier2    print(multiplier1, '×', multiplier2, '=', end=' ')    sum_answer = int(input(''))    if sum_answer == sum_right:        print('恭喜你答对了!  o(≧v≦)o~~好棒\n')    else:        print('很遗憾答错了!  (╥﹏╥)~~呜呜')        print(multiplier1, '×', multiplier2, '=', sum_right, '\n')        score -= diff    time.sleep(1)    # 除法    while True:        by_divisor = random.randint(0, 20)        divisor = random.randint(0, 10)        if divisor != 0:            break    sum_right = round(by_divisor / divisor, 2)    print(by_divisor, '÷', divisor, '=', end=' ')    sum_answer = float(input(''))    if sum_answer == sum_right:        print('恭喜你答对了!  o(≧v≦)o~~好棒\n')    else:        print('很遗憾答错了!  (╥﹏╥)~~呜呜')        print(by_divisor, '÷', divisor, '=', sum_right, '\n')        print()        score -= diff    time.sleep(1)print('恭喜你得了', score, '分!')

3. 结果展示

插入视频


一级编程题:

二级编程题:

三级编程题:

小朋友投稿:

群内答疑:

转载地址:https://lsgogroup.blog.csdn.net/article/details/116662956 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:【青少年编程】黄羽恒:翻译小工具 -- 利用有道翻译
下一篇:【青少年编程】黄羽恒:我要背单词

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月26日 04时40分45秒