Seite 1 von 1

English Zeitformen Rausfinden

Verfasst: Montag 13. Januar 2020, 16:11
von LeandergamesYT

Code: Alles auswählen

######################################################
# Name des Programmes: Zeitform- Lernprogramm.py     #
# Autor des Programmes: Yekta Senay                  #
# Erstellungsdatum: 13.01.2020 ; Von 14:21 Bis       #
######################################################
print("Dieses Programm ist noch in der Alpha version.")
print("Willst du dieses Programm trotzdem Verwenden?")
print()
print()
#Variablen und Listen:


b = 1
a = 1
x = 1
Ja = 1
Yes = 1
ja = 1
yes = 1
jA = 1
yEs = 1
yeS = 1
YeS = 1
YEs = 1
yES = 1


keineEindeutigenSignalWörter = ['Keine Eindeutigen Signalwörter | No clearly Signal Words']
pastPerfectSignal = keineEindeutigenSignalWörter
pastProgressiveSignal = ['while','when']
presentPefektSignal = ['just','yet','never','already','ever','so far','up to now','recently','since','for']
presentPerfectProgrssive = ['all day','the whole das','since','for','Fragen mit \"How Long\" | Questions with \"How Long']
presentProgressiveSignal = ['now','at the moment','Look!','Listen']
simplePastSignal = ['yesterday','last week','ago','in YEAR','this morning,evening...','Die Wörter week/month/2010 können mit anderen Zeitangaben ersetzt werden | The Words week/month/2010 can change to other Timeforms']
implePresentSignal = ['always','often','usually','sometimes','seldom','never','every day','every week','every year','on Mondays (oder andere Tage | or different days)','after school']
goingToFutureSignal = keineEindeutigenSignalWörter
willFurure = keineEindeutigenSignalWörter


#Haputcode:

print("Bitte gib das Wort ein, von dem du die Zeitform haben willst.")
print("Please enter the Word, from them you would to know the Timeform.")

aktuellerSatz = input()


if 'while' or 'when' in aktuellerSatz:
        print("Der Satz ", aktuellerSatz, "enthät eines dieser Signalwörterund befindet sich in der Zeitform \"Past Progressive\"")
        print("Signalwörter anzeigen Lassen?")
        print("Bitte gib Ja oder Yes ein.")
        signalWörterAnzeigen = input()
        if signalWörterAnzeigen == Ja or Yes or ja or yes or jA or yEs or yeS or YeS or YEs or yES:
            print("Das sind die Signalwörter der Zeitform Past Progressive:")
            print("while, when")

elif 'just' or 'yet' or 'never' or 'already' or 'ever' or 'so far' or 'up to now' or 'recently' or 'since' or 'for' in aktuellerSatz:
        print("Der Satz ", aktuellerSatz, "enthät eines dieser Signalwörterund befindet sich in der Zeitform \"Present Perfekt\"")
        print("Signalwörter anzeigen Lassen?")
        print("Bitte gib Ja oder Yes ein.")
        signalWörterAnzeigen = input()
        if signalWörterAnzeigen == Ja or Yes or ja or yes or jA or yEs or yeS or YeS or YEs or yES:
            print("Das sind die Signalwörter der Zeitform Present Perfekt:")
            print("just, yet, never, already, ever, so far, up to now, recently, since, for")
elif 'all day' or 'the whole das' or 'since' or 'for' or 'Fragen mit \"How Long\" | Questions with \"How Long' in aktuellerSatz:
            print("Der Satz ", aktuellerSatz, "enthät eines dieser Signalwörterund befindet sich in der Zeitform \"Perfect Progressive\"")
            print("Signalwörter anzeigen Lassen?")
            print("Bitte gib Ja oder Yes ein.")
            signalWörterAnzeigen = input()
            if signalWörterAnzeigen == Ja or Yes or ja or yes or jA or yEs or yeS or YeS or YEs or yES:
                print("Das sind die Signalwörter der Zeitform Perfect Progressive:")
                print("while, when")

elif if 'now' or 'at the moment' or 'Look!' or 'Listen' in aktuellerSatz:
                print("Der Satz ", aktuellerSatz, "enthät eines dieser Signalwörterund befindet sich in der Zeitform \"Present Progressive\"")
                print("Signalwörter anzeigen Lassen?")
                print("Bitte gib Ja oder Yes ein.")
                signalWörterAnzeigen = input()
                if signalWörterAnzeigen == Ja or Yes or ja or yes or jA or yEs or yeS or YeS or YEs or yES:
                    print("Das sind die Signalwörter der Zeitform Present Progressive:")
                    print("while, when")

elif if 'yesterday' or 'last week' or 'ago' or 'in YEAR' or 'this morning or evening...' or 'Die Wörter week/month/2010 können mit anderen Zeitangaben ersetzt werden | The Words week/month/2010 can change to other Timeforms' in aktuellerSatz:
                    print("Der Satz ", aktuellerSatz, "enthät eines dieser Signalwörterund befindet sich in der Zeitform \"Simple Past\"")
                    print("Signalwörter anzeigen Lassen?")
                    print("Bitte gib Ja oder Yes ein.")
                    signalWörterAnzeigen = input()
                    if signalWörterAnzeigen == Ja or Yes or ja or yes or jA or yEs or yeS or YeS or YEs or yES:
                        print("Das sind die Signalwörter der Zeitform Simple Past:")
                        print("while, when")

elif if 'always' or 'often' or 'usually' or 'sometimes' or 'seldom' or 'never' or 'every day' or 'every week' or 'every year' or 'on Mondays (oder andere Tage | or different days)' or 'after school' in aktuellerSatz:
                        print("Der Satz ", aktuellerSatz, "enthät eines dieser Signalwörterund befindet sich in der Zeitform \"Simple Present")
                        print("Signalwörter anzeigen Lassen?")
                        print("Bitte gib Ja oder Yes ein.")
                        signalWörterAnzeigen = input()
                        if signalWörterAnzeigen == Ja or Yes or ja or yes or jA or yEs or yeS or YeS or YEs or yES:
                            print("Das sind die Signalwörter der Zeitform Simple Present:")
                            print("while, when")

                    elif 
                        print("Das tut mir Leid, dein Signalwort konnte nicht gefunden werden. Bitte überprüfe nochmal deinen Satz und die schreibweise des Wortes.")
^^ Das ist mein Code
Ich weis nicht, warum er auf Past Progresive zu greift, wenn ich often, also Simple Present eingebe.
Kann mir hemand helfen?

Re: English Zeitformen Rausfinden

Verfasst: Montag 13. Januar 2020, 16:26
von ThomasL
if 'while' or 'when' in aktuellerSatz: ist immer True auch wenn weder while noch when im Satz vorkommen, da if 'while' immer True ergibt.
Du müsstest das konkretisieren in if 'while' in aktuellerSatz or 'when' in aktuellerSatz:
Das gilt natürlich für alle anderen Konditionen auch.

Re: English Zeitformen Rausfinden

Verfasst: Montag 13. Januar 2020, 16:45
von Sirius3
Es heißt `elif` und nicht `elif if`, so dass der Code nichtmal fehlerfrei am Compiler vorbei kommt. Beim einsamen `elif` am Ende fehlt eine Bedingung.

Konstanten schreibt man nach Konvention KOMPLETT_GROSS. Was sollen eigentlich die 6 unterschiedlichen Variablen mit unterschiedlier Schreibweise von yes, die alle den Wert 1 haben, und sich nie ändern?
b, a und x sind schlechte Variablennamen, werden aber auch gar nicht benutzt.
Variablennamen schreibt man klein_mit_unterstrich: signalwörter_anzeigen

`or` ist kein umgangssprachliches Oder, sondern ein logisches. Das heißt, ist der Linke Wert (ein nicht leerer String) wahr, dann wird die rechte Seite nicht mehr ausgewertet, weil das Gesamtergebnis klar ist.
Was Du suchst ist der Vergleich mit dem "in"-Operator.

Die Einrückungen sind falsch. Eingerückt wird immer mit 4 Leerzeichen pro Ebene.
`signalWörterAnzeigen` ist niemals eine Zahl, da Ja aber den Wert 1 hat, kann das nie True werden.

Statt der Langen elif-Kette und den vielen Code-Duplizierungen in den Blöcken, würde man eine passende Datenstruktur wählen, was z.B. Signalwortgruppen auf Zeitformen abbildet.

Re: English Zeitformen Rausfinden

Verfasst: Montag 13. Januar 2020, 19:02
von LeandergamesYT
Hi @Sirius3
Kannst du mir mal das so umschreiben, dass es passt?

Re: English Zeitformen Rausfinden

Verfasst: Montag 13. Januar 2020, 19:02
von LeandergamesYT
Kannst auch nur einen breich ändern damit ich das andere selber lerne

Re: English Zeitformen Rausfinden

Verfasst: Montag 13. Januar 2020, 19:11
von sparrow
Was soll das denn?

Code: Alles auswählen

Ja = 1
Yes = 1
ja = 1
yes = 1
jA = 1
yEs = 1
yeS = 1
YeS = 1
YEs = 1
yES = 1
Hier hast du die Signalwörter bereits in Listen:

Code: Alles auswählen

pastProgressiveSignal = ['while','when']
presentPefektSignal = ['just','yet','never','already','ever','so far','up to now','recently','since','for']
presentPerfectProgrssive = ['all day','the whole das','since','for','Fragen mit \"How Long\" | Questions with \"How Long']
presentProgressiveSignal = ['now','at the moment','Look!','Listen']
simplePastSignal = ['yesterday','last week','ago','in YEAR','this morning,evening...','Die Wörter week/month/2010 können mit anderen Zeitangaben ersetzt werden | The Words week/month/2010 can change to other Timeforms']
implePresentSignal = ['always','often','usually','sometimes','seldom','never','every day','every week','every year','on Mondays (oder andere Tage | or different days)','after school']
Warum benutzt du die Listen hinterher nicht, um damit zu prüfen?
Du solltest dir die anderen Datenstrukturen anschauen. Zum Beispiel "dictionaries" (dict). Damit kannst du einem Schlüssel einen Wert zuweisen. Der Wert kann ein beliebiges Objekt sein - also auch eine Liste. Wenn du den eine Schleife baust, die die Listen durchsucht und bei einem Treffer den Schlüssel ausgibt (und der Schlüssel die Zeitform ist) brauchst du das nur 1x schreiben und nicht für jede Zeitform wieder.

Re: English Zeitformen Rausfinden

Verfasst: Montag 13. Januar 2020, 19:20
von LeandergamesYT
Das hat der Liste hat net so geklappt habe die ganze zeit fahler bekommen
Kann mir jemand einen abteil bearbeiten?
Also von einer zeitform?

Re: English Zeitformen Rausfinden

Verfasst: Montag 13. Januar 2020, 19:21
von LeandergamesYT
Das hat der Liste hat net so geklappt habe die ganze zeit fahler bekommen
Kann mir jemand einen abteil bearbeiten?
Also von einer zeitform?

Re: English Zeitformen Rausfinden

Verfasst: Montag 13. Januar 2020, 19:25
von Sirius3
Was hat genau nicht geklappt?

So könnte das aussehen:

Code: Alles auswählen

SIGNAL_WORDS = {
    "Past Progressive": ['while', 'when'],
    "Present Perfekt": ['just', 'yet', 'never', 'already', 'ever', 'so far', 'up to now', 'recently', 'since', 'for'],
    "Perfect Progressive": ['all day', 'the whole das', 'since', 'for'],
    "Present Progressive": ['now', 'at the moment', 'Look!', 'Listen'],
    "Simple Past": ['yesterday', 'last week', 'ago', 'in YEAR', 'this morning or evening...'],
    "Simple Present": ['always', 'often', 'usually', 'sometimes', 'seldom', 'never', 'every day', 'every week', 'every year', 'on Mondays (oder andere Tage | or different days)', 'after school'],
}

def main():
    print("Bitte gib das Wort ein, von dem du die Zeitform haben willst.")
    print("Please enter the Word, from them you would to know the Timeform.")
    aktueller_satz = input()

    for timeform, words in SIGNAL_WORDS.items():
        if any(word in aktueller_satz for word in words):
            print(f'Der Satz {aktueller_satz} enthält eines dieser Signalwörter und befindet sich in der Zeitform "{timeform}"')
            print("Signalwörter anzeigen Lassen?")
            print("Bitte gib Ja oder Yes ein.")
            show = input()
            if show.upper() in ['YES', 'JA']:
                print(f"Das sind die Signalwörter der Zeitform {timeform}:")
                print(", ".join(words))
            break
    else:
       print("Das tut mir Leid, dein Signalwort konnte nicht gefunden werden. Bitte überprüfe nochmal deinen Satz und die schreibweise des Wortes.")

if __name__ == '__main__':
    main()

Re: English Zeitformen Rausfinden

Verfasst: Montag 13. Januar 2020, 19:35
von LeandergamesYT
Hast du es getestet?
<code>

Code: Alles auswählen

[quote]Bitte gib den Satz ein, dessen Zeitform und Signalwort du ermitteln willst.
Please enter the Sentence, from which timeform and signalword it haves.
yesterday
Tut mir Leid, dieser Satz konnte nicht ermittelt werden. Bitte Überprüfe nochmal deinen Satz und die schreibweise jedes Wortes.
Tut mir Leid, dieser Satz konnte nicht ermittelt werden. Bitte Überprüfe nochmal deinen Satz und die schreibweise jedes Wortes.
Tut mir Leid, dieser Satz konnte nicht ermittelt werden. Bitte Überprüfe nochmal deinen Satz und die schreibweise jedes Wortes.
Tut mir Leid, dieser Satz konnte nicht ermittelt werden. Bitte Überprüfe nochmal deinen Satz und die schreibweise jedes Wortes.
Der Satz {aktueller_satz} enthält eines dieser Signalwörter und befindet sich in der Zeitform "{timeform}"
Signalwörter anzeigen Lassen?
Bitte gib Ja oder Yes ein.
Ja
Das sind die Signalwörter der Zeitform {timeform}:
yesterday,last week,ago,in YEAR,this morning or evening...
>>> 
>>> 
>>> Bitte gib den Satz ein, dessen Zeitform und Signalwort du ermitteln willst.
Please enter the Sentence, from which timeform and signalword it haves.
yesterday
Tut mir Leid, dieser Satz konnte nicht ermittelt werden. Bitte Überprüfe nochmal deinen Satz und die schreibweise jedes Wortes.
Tut mir Leid, dieser Satz konnte nicht ermittelt werden. Bitte Überprüfe nochmal deinen Satz und die schreibweise jedes Wortes.
Tut mir Leid, dieser Satz konnte nicht ermittelt werden. Bitte Überprüfe nochmal deinen Satz und die schreibweise jedes Wortes.
Tut mir Leid, dieser Satz konnte nicht ermittelt werden. Bitte Überprüfe nochmal deinen Satz und die schreibweise jedes Wortes.
Der Satz {aktueller_satz} enthält eines dieser Signalwörter und befindet sich in der Zeitform "{timeform}"
Signalwörter anzeigen Lassen?
Bitte gib Ja oder Yes ein.
Ja
Das sind die Signalwörter der Zeitform {timeform}:
yesterday,last week,ago,in YEAR,this morning or evening...
>>> 
>>> 
>>> [/quote]
</code>

Re: English Zeitformen Rausfinden

Verfasst: Montag 13. Januar 2020, 19:37
von LeandergamesYT
sry, passt thx