0

DISCLAIMER: I'm not a very good programmer, so advanced techniques are quite alien to me.

I am currently trying to make a math program for a competition coming up this week, and I'm having some problems.

Firstly, this code (kinda clunky but still)...

fractions = [1 / 2, 2 / 3, 3 / 4, 9 / 10, 1 / 10, 2 / 10, 3 / 10, 4 / 10, 6 / 10, 7 / 10, 8 / 10, 9 / 10]
        number1 = random.choice(fractions)
        if number1 == 1 / 2:
            correctAnswer = 0.5
            number1 = 1
            number2 = 2
        elif number1 == 2 / 3:
            correctAnswer = 0.66
            number1 = 2
            number2 = 3
        elif number1 == 3 / 4:
            correctAnswer = 0.75
            number1 = 3
            number2 = 4
        elif number1 == 9 / 10:
            correctAnswer = 0.9
            number1 = 9
            number2 = 10
        elif number1 == 2 / 10:
            correctAnswer = 0.2
            number1 = 2
            number2 = 10
        elif number1 == 3 / 10:
            correctAnswer = 0.3
            number1 = 3
            number2 = 10
        elif number1 == 4 / 10:
            correctAnswer = 0.4
            number1 = 4
            number2 = 10
        elif number1 == 6 / 10:
            correctAnswer = 0.6
            number1 = 6
            number2 = 10
        elif number1 == 7 / 10:
            correctAnswer = 0.7
            number1 = 7
            number2 = 10
        elif number1 == 8 / 10:
            correctAnswer = 0.8
            number1 = 8
            number2 = 10
        else:
            correctAnswer = 0.9
            number1 = 9
            number2 = 10
        if input("Convert " + str(number1) + "/" + str(number2) + " to a decimal.") == correctAnswer:
            print("Correct!")
        else:
            print("Incorrect, the correct answer was " + str(correctAnswer) + ".")

...produces...

Enter *number1*/*number2* as a decimal.*correct answer*
Incorrect, the correct answer was *correct answer*.

...and this (also quite clunky)...

fractions = [1 / 2, 2 / 3, 3 / 4, 9 / 10, 1 / 10, 2 / 10, 3 / 10, 4 / 10, 6 / 10, 7 / 10, 8 / 10, 9 / 10]
        good = False
        while not good:
            fraction1 = random.choice(fractions)
            fraction2 = random.choice(fractions)
            fraction3 = random.choice(fractions)
            fraction4 = random.choice(fractions)
            all_da_fractions = [fraction1, fraction2, fraction3, fraction4]
            if fraction1 == 1 / 2:
                number1 = 0.5
            elif fraction1 == 2 / 3:
                number1 = 0.66
            elif fraction1 == 3 / 4:
                number1 = 0.75
            elif fraction1 == 9 / 10:
                number1 = 0.9
            elif fraction1 == 2 / 10:
                number1 = 0.2
            elif fraction1 == 3 / 10:
                number1 = 0.3
            elif fraction1 == 4 / 10:
                number1 = 0.4
            elif fraction1 == 6 / 10:
                number1 = 0.6
            elif fraction1 == 7 / 10:
                number1 = 0.7
            elif fraction1 == 8 / 10:
                number1 = 0.8
            else:
                number2 = 0.9
            if fraction2 == 1 / 2:
                number2 = 0.5
            elif fraction2 == 2 / 3:
                number2 = 0.66
            elif fraction2 == 3 / 4:
                number2 = 0.75
            elif fraction2 == 9 / 10:
                number2 = 0.9
            elif fraction2 == 2 / 10:
                number2 = 0.2
            elif fraction2 == 3 / 10:
                number2 = 0.3
            elif fraction2 == 4 / 10:
                number2 = 0.4
            elif fraction2 == 6 / 10:
                number2 = 0.6
            elif fraction2 == 7 / 10:
                number2 = 0.7
            elif fraction2 == 8 / 10:
                number2 = 0.8
            else:
                number2 = 0.9
            if fraction3 == 1 / 2:
                number3 = 0.5
            elif fraction3 == 2 / 3:
                number3 = 0.66
            elif fraction3 == 3 / 4:
                number3 = 0.75
            elif fraction3 == 9 / 10:
                number3 = 0.9
            elif fraction3 == 2 / 10:
                number3 = 0.2
            elif fraction3 == 3 / 10:
                number3 = 0.3
            elif fraction3 == 4 / 10:
                number3 = 0.4
            elif fraction3 == 6 / 10:
                number3 = 0.6
            elif fraction3 == 7 / 10:
                number3 = 0.7
            elif fraction3 == 8 / 10:
                number3 = 0.8
            else:
                number3 = 0.9
            if fraction4 == 1 / 2:
                number4 = 0.5
            elif fraction4 == 2 / 3:
                number4 = 0.66
            elif fraction4 == 3 / 4:
                number4 = 0.75
            elif fraction4 == 9 / 10:
                number4 = 0.9
            elif fraction4 == 2 / 10:
                number4 = 0.2
            elif fraction4 == 3 / 10:
                number4 = 0.3
            elif fraction4 == 4 / 10:
                number4 = 0.4
            elif fraction4 == 6 / 10:
                number4 = 0.6
            elif fraction4 == 7 / 10:
                number4 = 0.7
            elif fraction4 == 8 / 10:
                number4 = 0.8
            else:
                number4 = 0.9
            if number1 > number2 > number3 > number4 == True:
                good = True
        correctAnswer = str(number1) + "," + str(number2) + "," + str(number3) + "," + str(number4)
        if input("Place the fractions into order as decimals: " + str(number3) + "," + str(number2) + "," + str(
                number4) + "," + str(number1)) == correctAnswer:
            print("Correct!")
        else:
            print("Incorrect, the correct answer was " + str(correctAnswer) + ".")

...produces nothing.

If there is any way to fix this or improve the code, I would very much appreciate it. Thank you!

  • 1
    I don't see the point in your if statements, your code is storing decimal numbers (the outputs of `1/2` etc), not a string representation of a fraction. – Sayse Oct 19 '20 at 13:08
  • The code you've posted does not work. Please provide the code you're actually using. Use proper indentation. – AcK Oct 19 '20 at 13:17
  • I know quite some python but not this type of code: `if number1 > number2 > number3 > number4 == True:` – rioV8 Oct 19 '20 at 13:27
  • You can just remove your if statements as your array automatically evaluates each fraction to its decimal form – Dion Oct 19 '20 at 13:40

0 Answers0