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!