Dlaczego ten kod Pythona nie działa? Nie mogę zrozumieć problemu. zawsze drukuje to samo słowo ...

woerterbuch = {"He" :" Er", "She" : "Sie", "it":"es", "Hello":"Hallo", "How":"Wie", "Are":"Geht", "You":"Dir"}

wort = input("Geben Sie den zu übersetzenden Satz ein: ")
woerter = wort.split()


uebersetzung_wort = ""

for wort in woerter:
    wort = wort.lower()

    if wort in woerterbuch:
        uebersetzung = woerterbuch[wort]
    else:
        uebersetzung = wort

    uebersetzung_wort = uebersetzung_wort + " " + uebersetzung

print("Die Übersetzung dieses Satzes ist: ", uebersetzung_wort)
-1
FloFlo 2 kwiecień 2020, 18:25

4 odpowiedzi

Najlepsza odpowiedź

Masz wielkie litery w woerterbuch, ale szukasz tylko małych liter, ponieważ brzeczka = wort.lower (). Spróbuj zmienić woerterbuch na:

woerterbuch = {"he" :" Er", "she" : "Sie", "it":"es", "hello":"Hallo", "how":"Wie", "are":"Geht", "you":"Dir"}

A wtedy będzie działać poprawnie.

1
bashBedlam 2 kwiecień 2020, 15:38

Problem polega na tym, że wpisujesz tutaj słowo małymi literami: wort = wort.lower(), ale klucz w Twoim słowie nie jest pisany małymi literami.

Możesz wykonać następujące czynności:

woerterbuch = {"He" :" Er", "She" : "Sie", "it":"es", "Hello":"Hallo", "How":"Wie", "Are":"Geht", "You":"Dir"}
woerterbuch_lowered = {key.lower():value for key,value in woerterbuch.items()}
for wort in woerter:
    wort = wort.lower()
    uebersetzung = woerterbuch_lowered.get(wort,wort)
    uebersetzung_wort = uebersetzung_wort + " " + uebersetzung
2
Gabip 2 kwiecień 2020, 15:37

Konwertujesz swoje słowa (woerter?; ->) na małe litery za pomocą:

wort = wort.lower()

Ale niektóre klucze w Twoim słowniku zaczynają się od wielkich liter. Usuń powyższą linię, a kod powinien działać (mimo że jest unglaublich hässlich)

0
Błotosmętek 2 kwiecień 2020, 15:30

Jest kilka powodów, dla których napotkasz problem z tłumaczeniem z technicznego punktu widzenia. Z językowego punktu widzenia to inna kwestia. Jak już zauważył Gabip, klucze w Twoim słowniku nie są pisane małymi literami.

Oprócz tego powinieneś oczyścić swoje wprowadzane znaki interpunkcyjne. Kiedy wprowadzę „Hallo, wie geht es?”, Ani „Hallo”, ani „es” nie zostaną przetłumaczone, ponieważ w Twoim słowniku nigdy ich nie ma jako kluczy. Dostaje „Hallo” i „es?” które nie są kluczami w Twoim słowniku.

0
LTheriault 2 kwiecień 2020, 15:33