打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
【青少年编程】黄羽恒:加减乘除法小测试

「青少年编程竞赛交流群」已成立(适合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 random
import time

questions = int(input('你要测试几组(1组4题、1加、1减、1乘、1除,除不净保留2位小数)题:'))
score = 100
diff = score / questions / 4

for i in range(questions):

    time.sleep(1)

    # 加法
    addend1 = random.randint(0100)
    addend2 = random.randint(0100)
    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(0100)
        subtraction = random.randint(0100)
        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(020)
    multiplier2 = random.randint(010)
    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(020)
        divisor = random.randint(010)
        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. 结果展示


(1)有关Python的群内答疑:

(2)关于Python练习的投稿:


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Python代码实例
Python字典推导式
Numpy闯关100题,我闯了95关。
数据科学中100个Numpy代码技巧
编写程序,随机产生30个1-100之间的随机整数并存入5行6列的二维列表中,按5行6列的格式输出
90段实用的Numpy代码
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服