Optionaler Parameter in def

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
rennmaus
User
Beiträge: 217
Registriert: Dienstag 4. August 2020, 10:24

Hallo zusammen,
Kann ich einen Parameter in einer def Funktion optional machen, sprich, wenn er angegeben wird, wird eine andere Rechnung (mit dem Parameter) durchgeführt, wie wenn er nicht angegeben wird. Gibt es da eine möglichkeit?
Danke im Voraus für Antworten!

Mfg
Christian
Benutzeravatar
sparrow
User
Beiträge: 4538
Registriert: Freitag 17. April 2009, 10:28

Wirf mal einen Blick in das Tutorial.
Benutzeravatar
__blackjack__
User
Beiträge: 14053
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@rennmaus: Ja gibt es. Wobei wenn da wirklich etwas komplett anderes gemacht wird, sollte man dafür eine eigene Funktion schreiben.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
rennmaus
User
Beiträge: 217
Registriert: Dienstag 4. August 2020, 10:24

Perfekt, funktioniert! Danke!
rennmaus
User
Beiträge: 217
Registriert: Dienstag 4. August 2020, 10:24

Ich mache einfach mal hier weiter, dann quillt das Forum nicht über ;)

Kann ich, bzw. Wie kann ich aus einem Ordner alle Dateinamen(!) rauslesen, die mit .txt enden?
Benutzeravatar
sparrow
User
Beiträge: 4538
Registriert: Freitag 17. April 2009, 10:28

Schau dir das pathlib Modul an.
rennmaus
User
Beiträge: 217
Registriert: Dienstag 4. August 2020, 10:24

Path.glob()?
rennmaus
User
Beiträge: 217
Registriert: Dienstag 4. August 2020, 10:24

Mir fällt gerade auf, ich habe ein Problem. Die Dateien, sind nämlich keine .txt Dateien, sondern Dateien ohne '.'. Die heißen einfach nur Datei
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Bist du sicher? Windows versteckt das ja. Und wenn dem so ist: was ist stattdessen das vereinheitlichende Kriterium?
rennmaus
User
Beiträge: 217
Registriert: Dienstag 4. August 2020, 10:24

Kann ich Bilder hier ins Forum stellen, wenn ja wie geht das?

Naja, jedenfalls steht da:

Dateityp: Datei
Beschreibung: ....
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Man kann Bilder hochladen auf einen Image Hoster, und die dann hier verlinken. Ist etwas fummelig.

Und mal im Ernst: denkst du, mit dieser Information kann irgendwer etwas anfangen? Wenn du nicht weisst, nach welchem Kriterium du die Dateien auswaehlen wuerdest, dann kannst du das auch nicht programmieren. Und Kriterum "ist eine Datei" ist halt entweder alle, oder keine, aber sonst nix.
rennmaus
User
Beiträge: 217
Registriert: Dienstag 4. August 2020, 10:24

Tut mir leid, ich kann dir nicht ganz folgen. Ich meine es gibt ja z.B. .txt , .png , . jpg usw. Dateien, aber meine ist keine von diesen, da sie in der Beschreibung eben nur 'Datei' stehen hat und nicht z.B. '.txt'
Benutzeravatar
__blackjack__
User
Beiträge: 14053
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@rennmaus: Na dann musst Du halt alle auswählen die keine Dateiendung haben.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Benutzeravatar
snafu
User
Beiträge: 6870
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

...und somit entweder testen ob *kein* Punkt im Dateinamen ist oder bei Verwendung von pathlib das suffix-Attribut entsprechend überprüfen.
rennmaus
User
Beiträge: 217
Registriert: Dienstag 4. August 2020, 10:24

Code: Alles auswählen

import pathlib
    print(sorted(pathlib.Path('C:/Users/chris/Desktop/Deepsky Datenbank/Txt').glob('l')))
Das ist mein Code, als ausgabe bekomme ich aber immer nur: '[]'. Viele Dateien enden mit l, deshalb habe ich diesen Buchstaben ausgwählt um mich langsam ranzustasten

Code: Alles auswählen

import pathlib
    print(pathlib.PurePath('C:\\Users\\chris\\Desktop\\Deepsky Datenbank\\Txt').suffix)
Das ist der mit Suffix
Benutzeravatar
__blackjack__
User
Beiträge: 14053
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@rennmaus: Das findet alle Dateien die genau "l" heissen. Nix davor und nix danach. Nur "l".
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
rennmaus
User
Beiträge: 217
Registriert: Dienstag 4. August 2020, 10:24

snafu hat geschrieben: Samstag 31. Oktober 2020, 14:08 ...und somit entweder testen ob *kein* Punkt im Dateinamen ist oder bei Verwendung von pathlib das suffix-Attribut entsprechend überprüfen.
Leerer Output beim suffix Code also keine Endung, richtig?
Übrigens, geht es inzwischen mir eher darum, einfach alle Dateinamen eines Pfades angezeigt zu bekommen, als nur die die mit .txt enden

@__BlackJack__ wStimmt, da muss das Sternchen davor richtig ? ;)

Danke an alle die so nett waren und mir geholfen haben! Jetzt funktioniert es. Dann bis zur nächsten Frage ;)
Benutzeravatar
__blackjack__
User
Beiträge: 14053
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Da wäre dann `iterdir()` und ein Test auf „ist Datei“ oder „ist nicht Verzeichnis“ gefragt.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Antworten