[Anfänger] Erster Code

Stellt hier eure Projekte vor.
Internetseiten, Skripte, und alles andere bzgl. Python.
Antworten
Noob12
User
Beiträge: 4
Registriert: Sonntag 31. Januar 2021, 17:13

Hallo bin ein blutiger Anfänger in Python und dass ist mein erster echter Code. Dieser Code habe ich nur aus Spass erstellt und um ihn meinen Geschwistern zu zeigen, würde mich aber trotzdem auf Anregungen und Tipps freuen. :)





from time import sleep
vorname = input("Vorname : ") #n= name
Nachname = input("Nachname : ")
print(vorname)
print(Nachname)
a = "nein" or "Nein"
b = "ja" or "Ja"
c = "vielleicht" or "Vielleicht"
Nachfrage = input("Ist das dein Name? Antworte bitte mit 'ja' oder 'nein ")
print(Nachfrage + "?")

if a == Nachfrage:
ehrlich = input("Was ist dann dein Name? ")
print(ehrlich + "? Ok cooler Name.") #ehrlich = variable

elif b == Nachfrage:
print("Super!")

elif c == Nachfrage:
unentschieden = input("Entscheide dich.Wie lautet dein Name? ")
if unentschieden == c or b or a:
print("Hör auf.")

else:
print("Danke dass du mir endlich deinen Name verraten hast " + unentschieden)



else:
print("Was? Antworte bitte mit ja oder nein ")
versuch2 = input("Also,ja oder nein? ")

if b == versuch2:
print("Super!")

elif a == versuch2:
letzerVersuch = input("Ok,letzter Versuch;wie lautet dein Name?")
print(letzterVersuch + "?Ok endlich!")

else :
print("Loading...")
sleep(3)
print("SYSTEM ERROR")
Sirius3
User
Beiträge: 17710
Registriert: Sonntag 21. Oktober 2012, 17:20

Ein typischer Anfängerfehler ist, dass ›or‹ kein umgangssprachliches Oder ist und damit magisch etwas passiert, was man sich wünscht. ›or‹ ist in Python ein logische oder: nimm den ersten Wert, wenn er sich zu wahr auswerten läßt, sonst den zweiten.
Dazu solltest Du Dir mal den Wert von ›a‹, ›b‹ oder ›c‹ anschauen. Das was Du da machst, wird durch den in-Operator gemacht.
Variablennamen sollten aussagekräftig sein, was hat a mit ja und b mit nein zu tun?
Strings setzt man nicht mit + zusammen, sondern benutzt Formatstrings.

Code: Alles auswählen

JA = ["Ja", "ja"]
NEIN = ["Nein", "nein"]
VIELLEICHT = ["vielleicht", "Vielleicht"]

vorname = input("Vorname : ")
nachname = input("Nachname : ")

print(vorname)
print(nachname)

nachfrage = input("Ist das dein Name? Antworte bitte mit 'ja' oder 'nein ")
print(f"{nachfrage}?")

if nachfrage in NEIN:
    ehrlich = input("Was ist dann dein Name? ")
    print(f"{ehrlich}? Ok cooler Name.")
elif nachfrage in JA:
    print("Super!")
elif nachfrage in VIELLEICHT:
    unentschieden = input("Entscheide dich.Wie lautet dein Name? ")
    if unentschieden in JA + NEIN + VIELLEICHT
        print("Hör auf.")
    else:
        print(f"Danke dass du mir endlich deinen Name verraten hast {unentschieden}")
else:
    print("Was? Antworte bitte mit ja oder nein ")
    versuch2 = input("Also,ja oder nein? ")
    if versuch2 in JA
        print("Super!")
    elif versuch2 in NEIN
        letzer_versuch = input("Ok,letzter Versuch;wie lautet dein Name?")
        print(f"{letzter_versuch}? Ok endlich!")
    else :
        print("Loading...")
        print("SYSTEM ERROR")
Noob12
User
Beiträge: 4
Registriert: Sonntag 31. Januar 2021, 17:13

Ok danke für die vielen Tipps;hab nur eine Frage: Warum schreibst du zum Beispiel in Zeile 12 dieses f beim print?Also es scheint irgendwie für JA oder NEIN zu stehen aber ich würde gerne verstehen wie das funktioniert.
Sirius3
User
Beiträge: 17710
Registriert: Sonntag 21. Oktober 2012, 17:20

Das f steht für einen Formatstring: https://docs.python.org/3/tutorial/inpu ... -f-strings
Noob12
User
Beiträge: 4
Registriert: Sonntag 31. Januar 2021, 17:13

Ok schaue mir das mit den Formatstrings mal an. Ach ja nochmal danke für die Tipps vor allem die "in" Funktion scheint echt nützlich zu sein.
Antworten