亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何隨機選擇一個數學運算符并用它問重復的數學問題?

如何隨機選擇一個數學運算符并用它問重復的數學問題?

交互式愛情 2019-11-20 12:34:57
我有一個簡單的數學任務,執行時遇到問題,涉及隨機導入。這個想法是有10個隨機生成的問題的測驗。我使用random.randint函數獲得的數字范圍為(0,12),效果很好。選擇隨機運算符的下一個步驟我遇到了['+','-','*','/']的問題。我在學校時有更復雜的編碼,但這是我的練習,我所需要的就是能夠隨機創建一個問題并提出該問題的能力,同時還能夠自行回答該問題以確定給出的答案是否正確。這是我的代碼:import randomops = ['+', '-', '*', '/']num1 = random.randint(0,12)num2 = random.randint(0,10)operation = random.choice(ops)print(num1)print(num2)print(operation)maths = num1, operation, num2print(maths)截至目前,我的輸出有些混亂。例如:36*(3, '*', 6)顯然,它無法從(3,'*',6)確定答案。我將在另一個程序中將此操作轉換為子例程,但它需要首先工作!如果我做的不是很好,請原諒我,這是對我留在學校的任務的快速恢復,并且我對這方面的知識還很陌生。提前致謝!
查看完整描述

3 回答

?
翻翻過去那場雪

TA貢獻2065條經驗 獲得超14個贊

您如何制作將操作員的字符(例如'+')映射到操作員(例如operator.add)的字典。然后進行采樣,設置字符串格式并執行操作。


import random

import operator

生成隨機數學表達式


def randomCalc():

    ops = {'+':operator.add,

           '-':operator.sub,

           '*':operator.mul,

           '/':operator.truediv}

    num1 = random.randint(0,12)

    num2 = random.randint(1,10)   # I don't sample 0's to protect against divide-by-zero

    op = random.choice(list(ops.keys()))

    answer = ops.get(op)(num1,num2)

    print('What is {} {} {}?\n'.format(num1, op, num2))

    return answer

詢問用戶


def askQuestion():

    answer = randomCalc()

    guess = float(input())

    return guess == answer

最后進行多問題測驗


def quiz():

    print('Welcome. This is a 10 question math quiz\n')

    score = 0

    for i in range(10):

        correct = askQuestion()

        if correct:

            score += 1

            print('Correct!\n')

        else:

            print('Incorrect!\n')

    return 'Your score was {}/10'.format(score)

一些測試


>>> quiz()

Welcome. This is a 10 question math quiz


What is 8 - 6?

2

Correct!


What is 10 + 6?

16

Correct!


What is 12 - 1?

11

Correct!


What is 9 + 4?

13

Correct!


What is 0 - 8?

-8

Correct!


What is 1 * 1?

5

Incorrect!


What is 5 * 8?

40

Correct!


What is 11 / 1?

11

Correct!


What is 1 / 4?

0.25

Correct!


What is 1 * 1?

1

Correct!


'Your score was 9/10'


查看完整回答
反對 回復 2019-11-20
  • 3 回答
  • 0 關注
  • 722 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號