Seite 9 von 9

Re: Dateien herunterladen und in einem Verzeichnis ablegen

Verfasst: Freitag 28. April 2017, 15:55
von BlackJack
Wie pixewakb ja schon schrieb sind die beiden gemeldeten Fehler gar keine Fehler im Sinne das dort das Programm abbricht. Die kommen auch nicht von Python sondern von der IDE die dafür anscheinend `pyflakes` verwendet. Die Nummer der Meldungen beginnt mit einem W für Warning. Falls die IDE nicht zwischen Fehlern und Warnungen deutlich unterscheidet, sollte man das in den Einstellungen anpassen. Falls das nicht geht, würde ich die IDE wechseln.

Re: Dateien herunterladen und in einem Verzeichnis ablegen

Verfasst: Freitag 28. April 2017, 17:44
von pixewakb
Hilft Dir das:

Code: Alles auswählen

def quadrieren(a, b):
    # quadriert die beiden Zahlen a und b
    if type(a) not in [int, float]:
        raise TypeError("a ist keine Zahl!")
    if type(b) not in [int, float]:
        raise TypeError("b ist keine Zahl!")
    return a * b


def main():
    # Hauptprogramm, Prozedur ohne Rückgabewert
    a = 2
    b = 3

    produkt = quadrieren(a, b)

    print(produkt)

    a = b
    b = produkt

    produkt = quadrieren(a, b)

    print(produkt)


if __name__ == "__main__":
    main()
Formulier mal in Sprache, was Dein Algorithmus erledigen soll. Für mich ist es momentan schwierig Deinen Quelltext und Deine Aufgabe zu verstehen. Wenn ich es richtig denke, dann musst Du prüfen, ob der Ordner noch OK ist, falls ja, speicherst Du daran, falls nein, erzeugst Du einen neuen Ordner und speicherst dann da rein? Ich kann nicht sagen, dass ich ganz durchblicke. Momentan bin ich mit Arbeit eingedeckt und werde mich nicht (komplett) durch deinen Quelltext arbeiten können.

Re: Dateien herunterladen und in einem Verzeichnis ablegen

Verfasst: Freitag 28. April 2017, 18:04
von BlackJack
@pixewakb: Die Typprüfungen verhindern das man beispielsweise `long`; `decimal.Decimal`; `fractions.Fraction`; `mpz`-, `mpf`-, oder `mpq`-Objekte aus dem `gmpy`-Modul; Zahltypen und Arraytypen von Numpy, und wahrscheinlich noch eine ganze Menge anderer ”Zahlen” mit der Funktion verwenden kann. Warum?

Zudem würde man wenn schon mit `isinstance()` prüfen um wenigestens direkt abgeleitete Typen nicht auszuschliessen.

Re: Dateien herunterladen und in einem Verzeichnis ablegen

Verfasst: Freitag 28. April 2017, 18:44
von pixewakb
Autsch, wegduck. :oops: :oops: :oops:

In freier Wildbahn prüfe ich selten und wenn dann gezielt auf ganz wenige Dinge. Wie würdest Du die Typprüfung umsetzen, wenn man fragen darf.

Re: Dateien herunterladen und in einem Verzeichnis ablegen

Verfasst: Freitag 28. April 2017, 18:53
von Sirius3
@pixewakb: meist gar nicht. Passen die Typen nicht, fliegt einem das ja spätestens bei a*b um die Ohren.

Re: Dateien herunterladen und in einem Verzeichnis ablegen

Verfasst: Sonntag 30. April 2017, 13:38
von pixewakb
aaron hat geschrieben:Ich versuche schon lange die Funktionen zu begreifen. Hier meine erste Frage. Als Parameter übergebe ich year und day, weil ich aktuelle Datum prüfen möchte. Ist 2017 > 2016, dann ist die letzte Woche die 52. Kalenderwoche. Was ist bei einem Jahr mit 53 Kalenderwochen? Ist das neue Jahr < Jahr dann return. Kann mir bitte jemand erklären wie diese Funktion richtig funktioniert, woher die Parameter kommen und wie diese richtig an die nächste Funktion übergeben werden.

Code: Alles auswählen

def check_date(year, day):
      last_day = min(datetime.date(year, 12, 31), datetime.date.today())
      new_year, last_week, _ = day.isocalendar()
      if new_year > year:
          last_week = 52
      elif new_year < year:
          return
Als Fehlermeldung bekomme ich

Code: Alles auswählen

TickDataCsv.py|91 col 1 error| W0612 local variable 'last_day' is assigned to but never used [pyflakes]                                                                                                            
TickDataCsv.py|94 col 1 error| W0612 local variable 'last_week' is assigned to but never used 
Mal eine Verständnisfrage: Beim Speichervorgang würde ich doch nur das Speicherziel ermitteln, da wäre es doch eigentlich egal, in welcher Woche du dich befindest, das würde ich Python überlassen wollen. Wenn Du wieder laden willst (getrennter Vorgang, sonst würde ich mit dem Python-generierten Wert weiterarbeiten), bestimmst Du den letzten Ordner auf der Platte. Die Detailfragen dahinter - ohne mich jetzt durch den Quelltext zu arbeiten, Sorry, mein Schreibtisch liegt voll - müssten dich doch eigentlich gar nicht interessieren?