Python :: Aufgabe #192
2 Lösungen
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.
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:
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")
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.. ;)