@Tobivan: Zum ersten konkreten Punkt sagt PEP8 nichts. Ich würde da wie von kbr vorgschlagen kein eigenes `print()` verwenden, sondern die Eingabeaufforderung dem `input()` übergeben.
Ob Verkettung oder Addition von Zahlen: um binäre Operatoren tatsächlich Leerzeichen. Das erhöht die Lesbarkeit. Man übersieht die Grenzen zwischen den Operanden und dem Operator dann nicht so leicht. Insbesondere in Situationen wo man keine Syntaxhervorhebung hat.
Die Verkettung würde man in Python so aber sowieso nicht schreiben. ``+`` und `str()` ist eher BASIC. In Python verwendet man f-Zeichenkettenliterale oder die `format()`-Methode um Werte in Zeichenketten hinein zu formatieren.
Sonstige Anmerkungen: Bei Namen kommen zwischen Worte in einem Namen Unterstriche. OhnekanndasgenausoschwerlesbarwerdenwieTextohneLeerzeichen.
Falls man nicht Yoda ist, sollte man die Worte auch in der korrekten Reihenfolge in den Namen stecken.
Die Eingabe von unterer und oberer Zahl ist ja bis auf die Texte identisch — da könnte man eine Funktion für schreiben.
Nach der Schleife fehlt noch ein `print()` falls man die nächste Ausgabe nicht in der gleichen Zeile wie die letzte ausgegebene Zahl haben möchte.
Zwischenstand (ungetestet):
Code: Alles auswählen
#!/usr/bin/env python3
def ask_for_number(description):
number = int(input(f"Gib deine {description} Zahl ein: "))
print(f"Also ist {number} deine {description} Zahl.")
return number
def main():
lowest_number = ask_for_number("unterste")
highest_number = ask_for_number("oberste")
interval = int(
input("In welchem Abstand sollen die Zahlen aufgezählt werden? ")
)
for number in range(lowest_number, highest_number + 1, interval):
print(number, end=" ")
print()
if __name__ == "__main__":
main()
Nächste Schritte: Absichern gegen Fehleingaben, damit das Programm nicht mit einer Ausnahme aussteigt, wenn der Benutzer etwas eingibt, dass sich nicht in eine ganze Zahl umwandeln lässt.
Und dann die Formatierung der Ausgabe, so dass Zahlen nicht mittendrin umgebrochen werden. In der Standardbibliothek gibt es beispielsweise das Modul `textwrap`, falls man sich das nicht selber programmieren will.