Python Aufgabe?


24.07.2023, 12:39
def eingabe(ausgabe, zaehler):
   
    x = input("Geben Sie Ihre Zahl ein: ")
    
    if x > 0:
        print("Ihre Eingabe ist eine Zahl")
    
    zaehler = 1
    while zaehler <999:
        ausgabe(zaehler)
        zaehler = zaehler + 1

        Das habe ich bisher und weiß nicht mal ob das so richtig ist, hat auch leider keine funktion

jo135  24.07.2023, 11:36

Was hast du bisher?

ZennyT 
Fragesteller
 24.07.2023, 12:40

habe die Frage ergänzt

 

3 Antworten

Nun das Programm soll solange gehen bis eine bestimmte Bedinung, in dem Fall, dass die Eingabe nur aus Ziffern besteht, erfüllt wird. Somit findet der Großteil des Programmes in einer Schleife statt, dessen Bedinung ein solange true ist, bis die Eingabe der Aufgabenbedinung erfüllt, dann ist sie false und die Schleife endet.

Um zu schauen, ob eine Eingabe nur aus Zahlen besteht kannst du eine Funktion schreiben welche die Eingabe als Parameter nimmt und dann durch jeden einzelnen Buchstaben durchgeht und schaut, ob es eine Zahl ist oder nicht. Sobald ein Buchstabe keine Zahl ist kannst du die Schleife beenden und mit print dem Nutzer Bescheid sagen.

Für die Steuerung der while Schleife definierst du eine globale Variable wie nur_ziffern welche entweder true oder false ist. Diese änderst du dann in der Überprüfungsfunktion

Woher ich das weiß:Hobby – Programmiere in meiner Freizeit, hauptsächlich in C
Die Eingabe darf dabei nur aus Ziffern bestehen

Du möchtest Dir gerne mal str.isdigit() anschauen.

Ich halte es für ungünstig, wenn man seine Übungen nicht selbst erledigt, aber seis drum:

def getnum():
    num=""
    while (not num.isdigit()):
       num=input("Bitte Ziffernfolge eingeben: ")
    return num

print(getnum())

Variante: gelebter Minimalismus.

Naja, mach die Aufgabe mal so weit, wie du kommst. Also erstmal überhaupt eine Funktion erstellen, die eine Benutzereingabe zurückgeben kann.

Dann änderst du die Funktion so ab, dass die Benutzereingabe erstmal in eine Variable geschrieben wird, bevor sie zurückgegeben wird. Und dann änderst du sie nochmal so, dass du überprüfst, ob alle Zeichen in der Variable Ziffern sind (das geht z.B. ganz einfach mit der Funktion isdigit())

Du kannst dir aussuchen, ob du das mit einer while-Schleife machst, die so oft läuft, bis der Benutzer was sinnvolles eingegeben hat oder ob du es z.B. rekursiv machst, also dass deine Funktion sich so oft selbst aufruft, bis der Benutzer was sinnvolles eingegeben hat.