Python :: Aufgabe #192

2 Lösungen Lösungen öffentlich

Schleife, Randem, und switch und DataTime , TimeSpan.

Anfänger - Python von NMeassar - 06.07.2018 um 10:05 Uhr
Erstellen Sie ein Programm, welches dem Benutzer 10 Rechenaufgaben stellt.
Die Aufgaben bestehen jeweils aus zwei zufällig bestimmten Zahlen zwischen 1 und 10 und dem zufällig gewählten Operator (Möglichkeiten: + , - , *)
Ist das Ergebnis inkorrekt, wird folgender Text ausgegeben
"Das Ergebnis ist falsch!"
Dies geschieht solange, bis der Benutzer die Aufgabe richtig gelöst hat.
Nachdem die 10 Aufgaben gelöst sind, soll auf der Konsole die benötigte Zeit ausgegeben werden.

Lösungen:

vote_ok
von jigga (4260 Punkte) - 21.08.2018 um 10:42 Uhr
Quellcode ausblenden Python-Code
import random, time

start = time.time()

for i in range(1,11):
	n = random.randint(1,10)
	k = random.randint(1,10)
	op = random.randint(1,3)
	inp = 1000

	if op == 1:
		op = '+'
		res = n+k
	elif op == 2:
		op = '-'
		res = n-k
	else:
		op = '*'
		res = n*k

	print("\nAufgabe", i, "von 10")

	while inp != res:
		inp = int(input(str(n)+str(op)+str(k)+'='))
		if inp != res:
			print("Das Ergebnis ist falsch!")

end = time.time()

print("\nBenötigte Zeit:", round(end-start,2), "s")
vote_ok
von ZRX88 (2770 Punkte) - 22.12.2018 um 22:33 Uhr
Quellcode ausblenden Python-Code
"""
program should ask for 10 different math questions. After a wrong answer the user can retry.
At the end the number of seconds needed should be printed out.

"""

import random
import time

for number in range(10):
    start_time = time.time()
    print('Question: ' + str(number))
    zahl_1 = random.randint(0,1000)
    zahl_2 = random.randint(1,44)
    operator_rand = random.randint(0,4)
    if operator_rand == 0:
        operator_string = ' + '
    elif operator_rand == 1:
        operator_string = ' - '
    elif operator_rand == 2:
        operator_string = ' / '
    elif operator_rand ==3:
        operator_string = ' mod ' 
    else:
        operator_string = ' * '
        
    print('please solve: ' + str(zahl_1) + operator_string + str(zahl_2))
    while True:
        input_number = input('enter solution: ')
        if operator_rand == 0:
            if zahl_1 + zahl_2 == input_number:
                break
        elif operator_rand == 1:
            if zahl_1 - zahl_2 == input_number:
                break
        elif operator_rand == 2:
            if int(zahl_1 / zahl_2) == input_number:
                break
        elif operator_rand ==3:
            if zahl_1 % zahl_2 == input_number:
                break
        else:
            if zahl_1 * zahl_2 == input_number:
                break
            
end_time = time.time()
print(end_time)
print(start_time)

print('well done, you solved it within %f seconds' % (end_time -start_time))



Code tut sogar mehr als erwartet.. ;) Teilen ist immer etwas schwierig da 3,333333 rauskommen kann.. ;)
1801030

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.