nur False wird ausgegeben : Was mache ich Falsch

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
Rosemiller
User
Beiträge: 5
Registriert: Freitag 26. Juni 2015, 14:30

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
Zuletzt geändert von Anonymous am Freitag 26. Juni 2015, 19:02, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Code-Tags gesetzt.
Benutzeravatar
Kebap
User
Beiträge: 691
Registriert: Dienstag 15. November 2011, 14:20
Wohnort: Dortmund

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.. :wink:
MorgenGrauen: 1 Welt, 8 Rassen, 13 Gilden, >250 Abenteuer, >5000 Waffen & Rüstungen,
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
Rosemiller
User
Beiträge: 5
Registriert: Freitag 26. Juni 2015, 14:30

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
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

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.
qupfer
User
Beiträge: 9
Registriert: Samstag 24. Mai 2014, 22:17

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*
qupfer
User
Beiträge: 9
Registriert: Samstag 24. Mai 2014, 22:17

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 :D

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
Zuletzt geändert von qupfer am Samstag 27. Juni 2015, 22:44, insgesamt 1-mal geändert.
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
Antworten