diff options
| author | schneefux <schneefux+commit@schneefux.xyz> | 2014-11-22 09:38:59 +0100 |
|---|---|---|
| committer | schneefux <schneefux+commit@schneefux.xyz> | 2014-11-22 09:38:59 +0100 |
| commit | fc02e071592430a42481f47c501a39e43f25184d (patch) | |
| tree | 1079a628a397793023a34cb031e26986e86050a3 /zahlenspiel.py | |
| parent | 75bc87b4ba8fc567a1d20d6c04a66879c553614d (diff) | |
| download | bwinf-33-fc02e071592430a42481f47c501a39e43f25184d.tar.gz bwinf-33-fc02e071592430a42481f47c501a39e43f25184d.zip | |
pylint zahlenspiel.py
Diffstat (limited to 'zahlenspiel.py')
| -rwxr-xr-x | zahlenspiel.py | 47 |
1 files changed, 26 insertions, 21 deletions
diff --git a/zahlenspiel.py b/zahlenspiel.py index dafec34..e8891f9 100755 --- a/zahlenspiel.py +++ b/zahlenspiel.py @@ -1,47 +1,52 @@ #!/usr/bin/env python3 -# getestet mit Python 2.7.8 und 3.4.2 # -*- coding: utf-8 -*- +# getestet mit Python 2.7.8 und 3.4.2 +'''Berechnet einen Bruch zur Übung des Kürzens''' from random import randrange -def gcd(a, b): # größter gemeinsamer Teiler nach Euklid - while b: - a, b = b, a % b - return a +def gcd(vala, valb): + '''Berechnet den größten gemeinsamen Teiler nach Euklid''' + while valb: + vala, valb = valb, vala % valb + return vala -# berechnet einen ungekürzten Bruch a/b mit gekürztem Bruch p/q nach Schwierigkeits`stufe` -# `stufe` ist 0 (leicht), 1 (mittel) oder 2 (schwer) def bruch(stufe): + '''Berechnet einen ungekürzten Bruch vala/valb +mit gekürztem Bruch valp/valq nach Schwierigkeits`stufe`. +`stufe` ist 0 (leicht), 1 (mittel) oder 2 (schwer)''' + length = 4 if stufe == 0 else 5 erfolg = False while not erfolg: - suchen = True + suchen = True while suchen: - p = randrange(1, (stufe + 1) * 10) - q = randrange(stufe * 10 - p, (stufe + 1) * 10 - p) - suchen = (gcd(p, q) != 1) # falls nicht kürzbar + valp = randrange(1, (stufe + 1) * 10) + valq = randrange(stufe * 10 - valp, (stufe + 1) * 10 - valp) + suchen = (gcd(valp, valq) != 1) # falls nicht kürzbar - x = 2 + valx = 2 suchen = True while suchen: - a, b = p * x, q * x + vala, valb = valp * valx, valq * valx - if len(str(a)) + len(str(b)) == length: + if len(str(vala)) + len(str(valb)) == length: suchen = False erfolg = True else: - x += 1 - if len(str(a)) + len(str(b)) > length: + valx += 1 + if len(str(vala)) + len(str(valb)) > length: suchen = erfolg = False # neue Zahlen generieren - return a, b, p, q + return vala, valb, valp, valq -# gibt `anzahl` Aufgaben mit `stufe` (0 - leicht, 2 - schwer) aus def aufgaben(stufe, anzahl): - for j in range(anzahl): - a, b, p, q = bruch(stufe) - print(str(a) + " / " + str(b) + " = " + str(p) + " / " + str(q)) + '''gibt `anzahl` Aufgaben mit `stufe` (0 - leicht, 2 - schwer) aus''' + for _ in range(anzahl): + vala, valb, valp, valq = bruch(stufe) + print(str(vala) + " / " + str(valb) + \ + " = " + str(valp) + " / " + str(valq)) if __name__ == "__main__": aufgaben(randrange(4), randrange(1, 10)) |
