`Path`-Objekte haben eine `write_text()`-Methode (ungetestet):
Da war Dennis89 leicht schneller.
Ich hatte nicht weit genug nach unten gescrollt oder es glatt überlesen auf der Seite. Das ist tatsächlich um Längen einfacher. Hab ich übernommen, die Funktion "log_schreiben" gestrichen und stattdessen eine Funktion "weckzeit_löschen" geschrieben.
def weckzeit_löschen():
LOG_DATEI.write_text("Wecker ist aus!")
print ("\nWeckzeiten werden gelöscht!")
run([SNIPER], check = True)
Das mit dem ``x in range(a, b)``
The advantage of the range
type over a regular list
or tuple
is that a range
object will always take the same (small) amount of memory, no matter the size of the range it represents (as it only stores the start
, stop
and step
values, calculating individual items and subranges as needed).
Ich lese da raus, dass mitnichten "60 Vergleiche" gemacht werden, sondern nur der Start und Stopwert genommen werden. Ich gleiche ja auch nicht ab ob "minute" im Bereich 0-60 enthalten ist sondern ob sie außerhalb dieses Bereichs liegt (if not). Und da scheint range in diesem Fall nichts anderes als eine klein, größer, gleich Abfrage zu machen.
Nichts desto trotz habe ich auch diese Zeile geändert. 
Das mit dieser Funktion definitiv was nicht stimmt, sieht man wie eingangs erwähnt schon am Namen, weil man da Probleme hat einen guten Namen zu finden der beschreibt was die Funktion tut, ohne das man da einen ganzen Roman als Namen hat.
Ich hab die Funktion jetzt probeweise WIEDER in aufgeteilt, um dann in der main() diese beiden Fuktionen direkt nacheinander auszuführen.
Gefällt mir nicht! Werde ich wieder rückgängig machen. Ich bin auch nach wie vor der Meinung, dass du dich da zu sehr am Namen störst.
Vielleicht sollte ich sie wirklich in "arg-check()", "einganscheck()" oder vielleicht auch "hakan_check()" umbenennen. 
def lösch_check():
if str(argv[1]) == "99":
weckzeit_löschen()
else:
return True
def plausi_check():
try:
if 0 < int(argv[1]) >= 24 or 0 < int(argv[2]) > 59:
print (FEHLER)
exit()
except (ValueError, IndexError):
print (FEHLER)
exit()
Display More
gegnüber:
def mein_name_tut_nichts_zur_sache():
try:
if str(argv[1]) == "99":
LOG_DATEI.write_text("Wecker ist aus!")
run([SNIPER], check = True)
elif 0 < int(argv[1]) >= 24 or 0 < int(argv[2]) > 59:
print (FEHLER)
exit()
else:
return True
except (ValueError, IndexError):
print (FEHLER)
exit()
Display More
Und wenn du schreibst "..Was die Funktion macht habe ich schon verstanden..." verstehe ich deine Kritik am Namen nicht. "mein_name_tut_nichts_zur_sache()", bei diesem Namen OK, aber nicht bei den vorherigen nur weil du persönlich einen anderen Namen wählen würdest oder meine Namenswahl nicht nachvollziehen kannst.
Kritik ist angekommen, ich sehe es anders. Wenn du das als "aufstampfen" bezeichnen möchtest, steht dir das frei.
Auch der Satz: "...bis keiner mehr Lust hat auf die Fragen zu antworten wenn Du gar nichts lernen willst....". Wenn es dich stört, wenn nicht jeder deiner Vorschläge auch umgesetzt wird, tut es mir leid, aber so ist das Leben. Ich hab doch auch vieles von dir angenommen (str bei strftime weg, Path.write_text, exit() entfernt, while True entfernt, am Ende sogar range durch <=> ersetzt, gegenüber "ich lass die Funktion in einem").
Danke
für deine Hilfe
Thorsten