Seite 1 von 1

Input einer variable mit integrierter variable öfters verwenden

Verfasst: Samstag 4. Februar 2023, 03:01
von Wired1.0.

Code: Alles auswählen

Name_one =Klaus 
 Name_two = Dieter 
 Name_three = Hans
 
Name = input("Wer holt den Ball? Wähle eine Option)
    if Name ==1:
        Money= int(input(name_one, " holt den ball.  
                        Was bekommt er dafür?"))
    if name==2:
        int(input(name_two, " holt den ball.  
                        Was bekommt er dafür?"))
        
        #...........................
Hey der code ergibt nicht viel sinn(habe ihn nur eben beispielsweise eingetippt)
Meine Frage: Kommt man irgendwie drum herum jetzt 3x das gleiche abzutippen? Ich würde das mit einer schleife machen, habe aber absolut keine Ahnung wie man zB Money mit unterschiedlich integrierten Variablen wiedergeben kann.
Ich hoffe ihr versteht mein Problem.

Re: Input einer variable mit integrierter variable öfters verwenden

Verfasst: Samstag 4. Februar 2023, 07:26
von darktrym
Liest sich so als suchst du eine Liste?

Re: Input einer variable mit integrierter variable öfters verwenden

Verfasst: Samstag 4. Februar 2023, 11:29
von __blackjack__
@Wired1.0.: Nicht viel Sinn okay, da kann man aber schon erkennen was erreicht werden soll, aber da sind einige Fehler drin die verhindern, dass das überhaupt gültiger Python-Quelltext ist. So ein bisschen Mühe könnte man sich ja schon geben.

Die Einrückung stimmt nicht, Zeichenketten werden nicht durch einen entsprechenden Begrenzer beendet, beziehungsweise werden mit falschen Begrenzern auf mehr als eine Zeile verteilt, oder es fehlen die Begrenzer gleich ganz.

Und wenn man die Syntaxfehler ausgebügelt hat, kommen offensichtliche Laufzeitfehler wie falsche Anzahl von Argumenten bei Funktionsaufrufen und die Verwendung von undefinierten Namen. Python unterscheidet zwischen Gross- und Kleinschreibung bei Namen.

Führt zu keinem Laufzeitfehler aber der Vergleich von einer Zeichenkette mit einer ganzen Zahl ergibt *immer* `False`, das heisst es wird nie eine Frage gestellt was derjenige, der den Ball holt, denn nun bekommt.

Dann die Konventionen. Namen werden in Python klein_mit_unterstrichen geschrieben. Ausnahmen sind Konstanten (KOMPLETT_GROSS) und Klassen (PascalCase).

Man nummeriert keine Namen. Dann will man sich entweder bessere Namen überlegen, oder gar keine Einzelnamen/-werte verwenden, sondern eine Datenstruktur. Oft eine Liste.

Auf Modulebene sollte nur Code stehen der Konstanten, Funktionen, und Klassen definiert. Das Hauptprogramm steht üblicherweise in einer Funktion die `main()` heisst.

Code: Alles auswählen

#!/usr/bin/env python3


def main():
    names = ["Klaus", "Dieter", "Hans"]
    #
    # TODO Behandlung von Fehleingaben, also keine Zahl und Zahl ausserhalb von
    # 1 bis ``len(names)``.
    #
    choice = int(input("Wer holt den Ball? Wähle eine Option: "))
    #
    # TODO Behandlung von Fehleingaben, also keine Zahl und eventuell auch
    # negative (und 0?) ausschliessen.
    #
    money = int(
        input(f"{names[choice - 1]} holt den Ball. Was bekommt er dafür?")
    )
    ...


if __name__ == "__main__":
    main()