猫史档案馆


【Python作品分享】数学练习题【作品秀】

用户:尬聊boy尬聊boy查看:0 回复:1 评论:0 创建时间:2021-06-13T11:29:28


【作品展示】

center_image

 

【作品介绍】

这是一个要计算的作品,核心简单,只是代码比较长而已,如果你们有别的创新,阔以跟我说说,哈哈哈。

 

【作品源代码】

# 导入相应的模块
import random
from tkinter.constants import S
import easygui
import sys
import time

# 选择要练习的相关题目
choice = easygui.buttonbox(
    '请选择你要练习的题目', '标题', ('加法题目', '减法题目', '乘法题目', '除法题目'))
# 选择要练习的题目数量
choiceNum = int(easygui.enterbox('请输入你要练习的数量', '标题'))
# 判断题目数量是否为0
if choiceNum == 0 or choiceNum > 50:
    while True:
        easygui.msgbox('请问你是来搞笑的吗?', '标题', '对的')
        choiceNum = int(easygui.enterbox('请输入你要练习的数量', '标题'))
        if choice != 0:
            break

# 定义要准备的变量
if choice == '加法题目':
    addend1 = 0
    addend2 = 0
elif choice == '减法题目':
    subtraction1 = 0
    subtraction2 = 0
elif choice == '乘法题目':
    multiplier1 = 0
    multiplier2 = 0
elif choice == '除法题目':
    division1 = 0
    division2 = 0

# 设置当前题目数
subjectNum = 0
# 设置一个答案变量
answer = 0
# 设置答题开始时间和答题结束时间
startTime = 0
endTime = 0
# 设置玩家输入的答案变量
inanswer = 0
# 设置正确和错误的变量
correct = 0
error = 0

# 开始设置题目(加法)
if choice == '加法题目':
    for i in range(0, choiceNum + 1):
        addend1 = random.randint(0, 1001)
        addend2 = random.randint(0, 1001)
        subjectNum += 1

        def IF(num, p):
            if subjectNum == num:
                print(f'第{p}局')
        IF(1, '一')
        IF(2, '二')
        IF(3, '三')
        IF(4, '四')
        IF(5, '五')
        IF(6, '六')
        IF(7, '七')
        IF(8, '八')
        IF(9, '九')
        IF(10, '十')
        IF(11, '十一')
        IF(12, '十二')
        IF(13, '十三')
        IF(14, '十四')
        IF(15, '十五')
        IF(16, '十六')
        IF(17, '十七')
        IF(18, '十八')
        IF(19, '十九')
        IF(20, '二十')
        IF(21, '二十一')
        IF(22, '二十二')
        IF(23, '二十三')
        IF(24, '二十四')
        IF(25, '二十五')
        IF(26, '二十六')
        IF(27, '二十七')
        IF(28, '二十八')
        IF(29, '二十九')
        IF(30, '三十')
        IF(31, '三十一')
        IF(32, '三十二')
        IF(33, '三十三')
        IF(34, '三十四')
        IF(35, '三十五')
        IF(36, '三十六')
        IF(37, '三十七')
        IF(38, '三十八')
        IF(39, '三十九')
        IF(40, '四十')
        IF(41, '四十一')
        IF(42, '四十二')
        IF(43, '四十三')
        IF(44, '四十四')
        IF(45, '四十五')
        IF(46, '四十六')
        IF(47, '四十七')
        IF(48, '四十八')
        IF(49, '四十九')
        IF(50, '五十')
        if subjectNum == choiceNum + 1:
            print()
            print(
                f'完成练习, 你的正确率为{correct // choiceNum * 100}%, 你的错误率为{error // choiceNum * 100}%.')
            sys.exit()
        answer = addend1 + addend2
        startTime = time.time()
        inanswer = int(input(f'{addend1} + {addend2} = '))
        if inanswer == answer:
            endTime = time.time()
            easygui.msgbox(
                f'恭喜你答对了, 你做完这道题用了{round(endTime - startTime)}秒', '提示', '好的')
            correct += 1
            startTime = 0
            endTime = 0
            addend1 = 0
            addend2 = 0
            answer = 0
        else:
            endTime = time.time()
            easygui.msgbox(
                f'恭喜你答错了,你做这道题用了{round(endTime - startTime)}秒', '提示', '好')
            error += 1
            startTime = 0
            endTime = 0
            addend1 = 0
            addend2 = 0
            answer = 0

# ---------------------------分割线------------------------------------

# 开始设置题目(减法)
if choice == '减法题目':
    for i in range(0, choiceNum + 1):
        subtraction1 = random.randint(0, 1001)
        subtraction2 = random.randint(0, 1001)
        if subtraction1 < subtraction2:
            while subtraction1 < subtraction2:
                subtraction1 = random.randint(0, 1001)
                subtraction2 = random.randint(0, 1001)
        subjectNum += 1

        def IF(num, p):
            if subjectNum == num:
                print(f'第{p}局')
        IF(1, '一')
        IF(2, '二')
        IF(3, '三')
        IF(4, '四')
        IF(5, '五')
        IF(6, '六')
        IF(7, '七')
        IF(8, '八')
        IF(9, '九')
        IF(10, '十')
        IF(11, '十一')
        IF(12, '十二')
        IF(13, '十三')
        IF(14, '十四')
        IF(15, '十五')
        IF(16, '十六')
        IF(17, '十七')
        IF(18, '十八')
        IF(19, '十九')
        IF(20, '二十')
        IF(21, '二十一')
        IF(22, '二十二')
        IF(23, '二十三')
        IF(24, '二十四')
        IF(25, '二十五')
        IF(26, '二十六')
        IF(27, '二十七')
        IF(28, '二十八')
        IF(29, '二十九')
        IF(30, '三十')
        IF(31, '三十一')
        IF(32, '三十二')
        IF(33, '三十三')
        IF(34, '三十四')
        IF(35, '三十五')
        IF(36, '三十六')
        IF(37, '三十七')
        IF(38, '三十八')
        IF(39, '三十九')
        IF(40, '四十')
        IF(41, '四十一')
        IF(42, '四十二')
        IF(43, '四十三')
        IF(44, '四十四')
        IF(45, '四十五')
        IF(46, '四十六')
        IF(47, '四十七')
        IF(48, '四十八')
        IF(49, '四十九')
        IF(50, '五十')
        if subjectNum == choiceNum + 1:
            print()
            print(
                f'完成练习, 你的正确率为{correct // choiceNum * 100}%, 你的错误率为{error // choiceNum * 100}%.')
            sys.exit()
        answer = subtraction1 - subtraction2
        startTime = time.time()
        inanswer = int(input(f'{subtraction1} - {subtraction2} = '))
        if inanswer == answer:
            endTime = time.time()
            easygui.msgbox(
                f'恭喜你答对了, 你做完这道题用了{round(endTime - startTime)}秒', '提示', '好的')
            correct += 1
            startTime = 0
            endTime = 0
            addend1 = 0
            addend2 = 0
            answer = 0
        else:
            endTime = time.time()
            easygui.msgbox(
                f'恭喜你答错了,你做这道题用了{round(endTime - startTime)}秒', '提示', '好')
            error += 1
            startTime = 0
            endTime = 0
            addend1 = 0
            addend2 = 0
            answer = 0

# ------------------------------分割线--------------

# 开始设置题目(乘法)
if choice == '乘法题目':
    for i in range(0, choiceNum + 1):
        multiplier1 = random.randint(0, 101)
        multiplier2 = random.randint(0, 101)
        subjectNum += 1

        def IF(num, p):
            if subjectNum == num:
                print(f'第{p}局')
        IF(1, '一')
        IF(2, '二')
        IF(3, '三')
        IF(4, '四')
        IF(5, '五')
        IF(6, '六')
        IF(7, '七')
        IF(8, '八')
        IF(9, '九')
        IF(10, '十')
        IF(11, '十一')
        IF(12, '十二')
        IF(13, '十三')
        IF(14, '十四')
        IF(15, '十五')
        IF(16, '十六')
        IF(17, '十七')
        IF(18, '十八')
        IF(19, '十九')
        IF(20, '二十')
        IF(21, '二十一')
        IF(22, '二十二')
        IF(23, '二十三')
        IF(24, '二十四')
        IF(25, '二十五')
        IF(26, '二十六')
        IF(27, '二十七')
        IF(28, '二十八')
        IF(29, '二十九')
        IF(30, '三十')
        IF(31, '三十一')
        IF(32, '三十二')
        IF(33, '三十三')
        IF(34, '三十四')
        IF(35, '三十五')
        IF(36, '三十六')
        IF(37, '三十七')
        IF(38, '三十八')
        IF(39, '三十九')
        IF(40, '四十')
        IF(41, '四十一')
        IF(42, '四十二')
        IF(43, '四十三')
        IF(44, '四十四')
        IF(45, '四十五')
        IF(46, '四十六')
        IF(47, '四十七')
        IF(48, '四十八')
        IF(49, '四十九')
        IF(50, '五十')
        if subjectNum == choiceNum + 1:
            print()
            print(
                f'完成练习, 你的正确率为{correct // choiceNum * 100}%, 你的错误率为{error // choiceNum * 100}%.')
            sys.exit()
        answer = multiplier1 * multiplier2
        startTime = time.time()
        inanswer = int(input(f'{multiplier1} x {multiplier2} = '))
        if inanswer == answer:
            endTime = time.time()
            easygui.msgbox(
                f'恭喜你答对了, 你做完这道题用了{round(endTime - startTime)}秒', '提示', '好的')
            correct += 1
            startTime = 0
            endTime = 0
            addend1 = 0
            addend2 = 0
            answer = 0
        else:
            endTime = time.time()
            easygui.msgbox(
                f'恭喜你答错了,你做这道题用了{round(endTime - startTime)}秒', '提示', '好')
            error += 1
            startTime = 0
            endTime = 0
            addend1 = 0
            addend2 = 0
            answer = 0

# -------------------------------------分割线----------------------------------

# 开始设置题目(除法)
if choice == '除法题目':
    for i in range(0, choiceNum + 1):
        division1 = random.randint(0, 1001)
        division2 = random.randint(0, 1001)
        if division1 < division2:
            while division1 < division2:
                division1 = random.randint(0, 1001)
                division2 = random.randint(0, 1001)
        if division1 % division2 != 0:
            while division1 % division2 != 0:
                division1 = random.randint(0, 1001)
                division2 = random.randint(0, 1001)
        subjectNum += 1

        def IF(num, p):
            if subjectNum == num:
                print(f'第{p}局')
        IF(1, '一')
        IF(2, '二')
        IF(3, '三')
        IF(4, '四')
        IF(5, '五')
        IF(6, '六')
        IF(7, '七')
        IF(8, '八')
        IF(9, '九')
        IF(10, '十')
        IF(11, '十一')
        IF(12, '十二')
        IF(13, '十三')
        IF(14, '十四')
        IF(15, '十五')
        IF(16, '十六')
        IF(17, '十七')
        IF(18, '十八')
        IF(19, '十九')
        IF(20, '二十')
        IF(21, '二十一')
        IF(22, '二十二')
        IF(23, '二十三')
        IF(24, '二十四')
        IF(25, '二十五')
        IF(26, '二十六')
        IF(27, '二十七')
        IF(28, '二十八')
        IF(29, '二十九')
        IF(30, '三十')
        IF(31, '三十一')
        IF(32, '三十二')
        IF(33, '三十三')
        IF(34, '三十四')
        IF(35, '三十五')
        IF(36, '三十六')
        IF(37, '三十七')
        IF(38, '三十八')
        IF(39, '三十九')
        IF(40, '四十')
        IF(41, '四十一')
        IF(42, '四十二')
        IF(43, '四十三')
        IF(44, '四十四')
        IF(45, '四十五')
        IF(46, '四十六')
        IF(47, '四十七')
        IF(48, '四十八')
        IF(49, '四十九')
        IF(50, '五十')
        if subjectNum == choiceNum + 1:
            print()
            print(
                f'完成练习, 你的正确率为{correct // choiceNum * 100}%, 你的错误率为{error // choiceNum * 100}%.')
            sys.exit()
        answer = division1 / division2
        startTime = time.time()
        easygui.msgbox('扩展"/"是计算机中的除号,和数学除法计算方法一样', '提示')
        inanswer = int(input(f'{division1} / {division2} = '))
        if inanswer == answer:
            endTime = time.time()
            easygui.msgbox(
                f'恭喜你答对了, 你做完这道题用了{round(endTime - startTime)}秒', '提示', '好的')
            correct += 1
            startTime = 0
            endTime = 0
            addend1 = 0
            addend2 = 0
            answer = 0
        else:
            endTime = time.time()
            easygui.msgbox(
                f'恭喜你答错了,你做这道题用了{round(endTime - startTime)}秒', '提示', '好')
            error += 1
            startTime = 0
            endTime = 0
            addend1 = 0
            addend2 = 0
            answer = 0


# 完成!

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 1下一页
未登录Nemo未登录Nemo

加油加油emotion_编程猫_加油

点赞0


评论