Seite 1 von 1
nur False wird ausgegeben : Was mache ich Falsch
Verfasst: Freitag 26. Juni 2015, 17:10
von Rosemiller
Hallo ich schreibe ein Python Skript, indem ich herausfinden möchte ob ein Buchstabe zu dem Wort 'Hello' gehört.
Allerdings erhalte ich bei der Ausführung entweder nur den Wert False ( selbst wenn es ein richtiger Buchstabe war ).
Mein Skript :
Code: Alles auswählen
def letter_in_word(s):
n= "Hhelo"
word= "Hello"
for letter in s: # bei der Schleife bin ich mir eh nicht sicher
s = "Hello"
n=str(raw_input("letter_in_word"))
if "Hhelo" in "Hello": # 'Hhelo' wurde versuchshalber durch gerade striche getrennte oder einfach jedes Item für sich = hat nichts gebracht
print True
else:
print False
Re: nur False wird ausgegeben : Was mache ich Falsch
Verfasst: Freitag 26. Juni 2015, 18:50
von Kebap
Willkommen Rosemiller. Hast du jetzt einen neuen Thread aufgemacht, weil in
deinem ersten seit knapp 1 Stunde niemand geantwortet hat? Obwohl es immer noch um das gleiche Problem geht?
Dein Code sieht recht seltsam aus. Das liegt unter anderem daran, dass du ihn nicht in einen Code-Block hier im Forum eingestellt hast. Dafür gibt es einen Knopf beim Schreiben des Beitrags..

Re: nur False wird ausgegeben : Was mache ich Falsch
Verfasst: Samstag 27. Juni 2015, 10:18
von Rosemiller
nein mittlerweile geht es nicht mehr um das gleiche problem, sondern um ein neues aber die gleiche Aufgabe betreffend
und daher habe ich einen neuen aufgemacht
Re: nur False wird ausgegeben : Was mache ich Falsch
Verfasst: Samstag 27. Juni 2015, 10:57
von cofi
Fuer mich sieht das noch nach genau dem gleichen Problem aus.
1. Du hast einen Aufruf gegeben der funktionieren muss, deine Loesung (d.h. die Funktion `letter_in_words`) haelt sich nicht daran: Du bekommst 2 Argumente und musst einen bestimmten Rueckgabewert haben.
2. Starte den interaktiven Interpreter und mach dich damit vertraut wie der `in` Operator und wie `for` Schleifen ueber Strings funktionieren.
Re: nur False wird ausgegeben : Was mache ich Falsch
Verfasst: Samstag 27. Juni 2015, 15:17
von qupfer
Code: Alles auswählen
def Buchstabentest(meinWort, meinBuchstabe):
for letter in meinWort:
if meinBuchstabe == letter:
return True
return False
def eingabe():
meinWort = input ("Gebe Wort ein: ") # für python 2.7 raw_input()
meinBuchstabe = input ("Gebe Buchstabe ein: ") # für python 2.7 raw_input()
return meinWort, meinBuchstabe
def ausgabe(vorhanden):
if vorhanden: # gleichbedeutend mit "if vorhanden == True"
print ("Buchstabe vorhanden")
else:
print ("Buchstabe nicht vorhanden")
def main():
wort, buchstabe = eingabe() # eingabe
Ergebnis = Buchstabentest(wort, buchstabe) # test
ausgabe(Ergebnis) # ausgabe
if __name__ == "__main__":
main()
bestimmt nicht perfekt, aber für ne Hausaufgabe dürfte es reichen *duck*
Re: nur False wird ausgegeben : Was mache ich Falsch
Verfasst: Samstag 27. Juni 2015, 21:50
von qupfer
Edit geht nicht mehr...die For-Schleife kann man sich tatsächlich schenken *wieder-was-gelernt*
Edit: Danke Blackjack, so ist es sogar noch schöner
Code: Alles auswählen
def Buchstabentest(meinWort, meinBuchstabe):
return meinBuchstabe in meinWort
mein altes "unschönes" Beispiel:
Code: Alles auswählen
def Buchstabentest(meinWort, meinBuchstabe):
if meinBuchstabe in meinWort:
return True
Re: nur False wird ausgegeben : Was mache ich Falsch
Verfasst: Samstag 27. Juni 2015, 22:08
von BlackJack
@qupfer: Ist nicht besonders schön das die Funktion `True` oder `None` liefert statt `True` oder `False`. Und das Ergebnis des ``in``-Operators ist ja schon `True` oder `False`:
Code: Alles auswählen
def enthaelt(wort, buchstabe):
return buchstabe in wort