【青少年编程】黄羽恒:加减乘除法小测试
发布日期: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秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
理解HTTPS为什么安全前,先看看这些东西
2019-05-01
最通俗易懂地解释:正向代理与反向代理
2019-05-01
代码这样写不止于优雅(Python版)
2019-05-01
一份来自掘金社区的开发者报告
2019-05-01
Python是怎么火起来的
2019-05-01
一本书搞定Python入门到实践
2019-05-01
20-40k+期权,蚂蚁金服招 Python 开发工程师
2019-05-01
2017半年文章合集(建议收藏)
2019-05-01
简析 __init__、__new__、__call__ 方法
2019-05-01
程序员如何优雅地写公众号
2019-05-01
@classmethod与@staticmethod的区别
2019-05-01
只有1%的程序员搞懂过浮点数陷阱
2019-05-01
衡量代码质量的唯一有效标准:WTF/min
2019-05-01
一个网络请求的历险之旅
2019-05-01
Google 为什么把几十亿行代码放在一个库
2019-05-01
Erlang 之父 Joe Armstrong 去世
2019-05-01
来不及了,世界读书日,送10本书
2019-05-01
速来,上期中奖名单
2019-05-01
一名 Google 工程师的大数据处理经验
2019-05-01
命令行神器 Click 快速上手
2019-05-01