Durch ein Programm sollen alle geraden bzw. ungeraden Zahlen in einem Bereich der durch den Benutzer definiert wurde ausgegeben werden?

4 Antworten

Ich hätte das beispielsweise folgendermaßen gelöst:

while True:
    try:
        lower = int(input("Bei welcher ganzen Zahl soll die Aufzählung beginnen? "))
        upper = int(input("Bei welcher ganzen Zahl soll die Aufzählung enden? "))
    except ValueError:
        print("Das ist keine ganze Zahl gewesen!\n")
        continue
    if lower <= upper:
        break
    else:
        print("Die untere Grenze ist größer als die obere Grenze!\n")


if lower % 2 == 0:
    even = list(range(lower, upper+1, 2))
    uneven = list(range(lower+1, upper+1, 2))
else:
    even = list(range(lower+1, upper+1, 2))
    uneven = list(range(lower, upper+1, 2))


print("Gerade Zahlen:", even)
print("Ungerade Zahlen:", uneven)
Hallo kann mir jemand den Python-Code sagen für die Aufgabe

können ja, aber das ist deine Hausaufgabe. Es ist nicht der Sinn davon, dass WIR dir deinen Code vorkauen - und das sind einfachste Grundlagen

Wo hapert es denn genau bei dir? Fehlen dir die Grundlagen? Fehlt dir die Idee?

Kleiner Tipp: Nutze eine Schleife, die über eine gewisse Range iteriert. Hierbei kannst du auch die Schrittweite in der Range angeben, sodass immer nur die gerade/ungerade Zahl angegeben wird.

Siehe auch: https://docs.python.org/3/library/functions.html#func-range

https://docs.python.org/3/tutorial/controlflow.html#for-statements

https://docs.python.org/3/tutorial/controlflow.html#the-range-function

Alternativ, wenn du beide Mengen mit einem einzigen Schleifendurchlauf ausgeben willst, kannst du beides in einer Liste / einem Set / einem Dict / jeder anderen Datenstruktur speichern. Du müsstest dann nur unterscheiden, ob es gerade oder ungerade ist - was du durch Modulo könntest

print(list(range(input("Gerade Zahlen? (j/n) ").lower().startswith("j")+1,int(input("Bis zu welcher Zahl? "))+1,2)))

Ich würde so herangehen: Du gehst mit einer for-Schleife alle Zahlen in diesem Bereich durch, machst bei jeder Modulo 2. Wenn da 0 rauskommt, ist sie gerade, dann kannst du sie einer Liste mit geraden Zahlen hinzufügen. Wenn da 1 rauskommt, ist sie ungerade, dann fügst du sie einer Liste für ungerade hinzu.
Und am Ende gibt du einfach mit einer erneuten for-Schleife und Print die Listen aus.

Woher ich das weiß:Hobby