Seite 1 von 1
Input innerhalb einer Funktion
Verfasst: Sonntag 4. November 2018, 15:22
von d_rose
Wie krieg ich es hin das wenn ich ein Input Befehl innerhalb einer Funktion habe dieser auch ausgeben wird :
Code: Alles auswählen
def eingabe ():
zk = input("Geben sie eine Zeichenkette ein: ")
return zk
for z in zk :
if ord(z) >=0 and ord(z) <=127:
print ("True")
else :
return False
/code]
zumindest müsste meines Erachtens wenigstens die Shell mich nach einer eingabe fragen oder irre ich mich ?
Re: Input innerhalb einer Funktion
Verfasst: Sonntag 4. November 2018, 15:28
von snafu
Du musst eingabe() natürlich auch aufrufen. Tust du das?
Re: Input innerhalb einer Funktion
Verfasst: Sonntag 4. November 2018, 15:34
von ThomasL
und der Code nach return zk wird nie ausgeführt
Re: Input innerhalb einer Funktion
Verfasst: Sonntag 4. November 2018, 16:44
von d_rose
Code: Alles auswählen
def eingabe (zk):
zeichenkette = eingabe(input("Geben sie eine Zeichenkette ein: "))
for Buchstabe in zeichenkette :
if ord(z) >=0 and ord(z) <=127:
return /code]
nun lautet mein Problem das obenstehende funktion entweder true oder false ausgeben soll
allerdings sind Strings immer true sobald ein Zeichen eingetippt sind und nur false falls zeichenlos, die bedingung ist bei mir das bei der eingabe überprüft werden soll ob die eingabe nur aus Zeichen welche Teil der ASCII Tabelle sind besteht. das Heist z.B. für Ö müsste false rauskommen.
wie kriege ich es hin das der text ausserhalb vom code steht ?
Re: Input innerhalb einer Funktion
Verfasst: Sonntag 4. November 2018, 16:50
von Sirius3
Jetzt hast Du ja als Rückgabewert immer None, egal was Du eingibst. Die simple Lösung wäre, `encode` zu benutzen.
Re: Input innerhalb einer Funktion
Verfasst: Sonntag 4. November 2018, 19:08
von d_rose
Code: Alles auswählen
def eingabe (zk):
zeichenkette = eingabe(input("Geben sie eine Zeichenkette ein: "))
for Buchstabe in zeichenkette :
if ord(z) >=0 and ord(z) <=127:
return True
else : return False
Bin mir unsicher ob das auch jetzt funktionieren könnte , da eigentlich meines Erachtens nach, nach return die Funktion beendet ist. gibts irgendeine Möglichkeit zu überprüfen ob die Funktion mir return oder false rausgibt ?
Re: Input innerhalb einer Funktion
Verfasst: Sonntag 4. November 2018, 19:37
von snafu
So steigt er tatsächlich früh aus, da die Einrückungen falsch sind. Das False muss hinter die Schleife gesetzt werden, nicht innerhalb der Schleife. Ich glaube, da fehlt noch einiges an Grundlagen. Du solltest zuerst einmal ein Tutorial durcharbeiten. Ist Python deine erste Programmiersprache?
Re: Input innerhalb einer Funktion
Verfasst: Sonntag 4. November 2018, 19:45
von Sirius3
@d_rose: `zk` wird gar nicht verwendet und Du startest gleich mit einer Endlos-Rekursion, weil Du eingabe immer wieder aufrufst. Später hast Du dann bei `z` einen NameError, weil `z` wiederum nirgends definiert wird. Zum dritten beendest Du die Funktion immer nach dem ersten Zeichen.
Programmieren ist nicht raten. Lies doch mal durch was Du da geschrieben hast und versuche das Schritt für Schritt zu verstehen.
Re: Input innerhalb einer Funktion
Verfasst: Sonntag 4. November 2018, 21:51
von d_rose
Ich bin neu im programmieren, es macht mir auch sehr Spaß, leider überfordert mich ein bisschen der Umfang der ganzen Sache, was alles möglich ist, hinzu kommen Termine die ich einhalten muss , da ich diese Sachen abgeben muss, ich schaue mir zahlreiche Tutorials an , hab mich bei Code Academy angemeldet und Arbeite konsequent daran besser zu werden und ich weis es ist keine Sache von heute auf morgen, ich erwarte auch nicht das hier mir Hausaufgaben oder sonstiges einfach gemacht werden sodass ich die Sachen nur kopieren muss, aber irgendwo muss ich ja an diesen Sachen arbeiten und die beste Methode meines Erachtens nach ist Trial und error und möglichst genau nach den errors zu fragen