[Python-de] Gehoertraining mit geringen Python-Kenntnissen
Peter Otten
__peter__ at web.de
Sa Okt 20 09:52:25 EDT 2018
Am Sa Oktober 20 2018, 12:46:47 schrieb Stefan Ram:
> Gerade habe ich zu meinem Kurs das folgende Programm zum
> Gehörtraining als Programmbeispiel hinzugefügt.
>
> Man beachte, wie darin Dinge, die man normalerweise mit Hilfe
> von Vergleichsoperatoren und Kontrollstrukturen ausdrücken
> würde, ohne Vergleichsoperatoren und Kontrollstrukturen
> formuliert werden, da Vergleichsoperatoren und
> Kontrollstrukturen an der Stelle des Kurses, an der dieses
> Skript vorgestellt werden soll, noch nicht behandelt wurden.
> Grundrechenarten (einschließlich »+« und »*« für Strings),
> Funktionsaufrufe (sowie auch Kommentare, Namen, Zuweisungen
> und from-Importe) wurden hingegen schon behandelt ...
>
> from winsound import Beep
> from random import random
> from math import isclose
Zu früh für Vergleichsoperatoren, aber dann isclose() aus dem Hut zaubern...
> quinte = 2/3
> grosse_terz = 4/5
>
> erste_frequenz_in_Hz = int( random() * 1000 + 110 )
> intervall = int( random() * 2 ) # 1 = Quinte, 0 = grosse Terz
> frequenzverhaeltnis = intervall * quinte +( 1 - intervall )* grosse_terz
> zweite_frequenz_in_Hz = int( erste_frequenz_in_Hz * frequenzverhaeltnis )
>
> dauer_in_millisekunden = 400
> Beep( erste_frequenz_in_Hz, dauer_in_millisekunden )
> Beep( zweite_frequenz_in_Hz, dauer_in_millisekunden )
>
> eingabe = input( "War dies eine Quinte (q) oder eine grosse Terz (t)? " )
> print( 'Es war', intervall * 'eine Quinte.' +( 1 - intervall )* 'eine Terz.'
> ) richtige_antwort = intervall * 'q' +( 1 - intervall )* 't'
> bewertung = isclose( 0, ord( eingabe )- ord( richtige_antwort ))
> print\
> ( 'Ihre Antwort war', bewertung * 'richtig.' +( 1 - bewertung )* 'falsch.' )
Wäre doch gelacht, wenn du deine Studenten nicht schon mit der ersten Lektion
zur Verzweiflung bringst ;)
Mehr Informationen über die Mailingliste python-de