Seite 1 von 1
Python Hausaufgabe / Dezimalzahlen untereinander ausgeben
Verfasst: Dienstag 22. Oktober 2013, 12:05
von slythelly
Also, in meiner FGI Vorlesung haben wir die Aufgabe bekommen ein Python Programm zu schreiben das die eingegebene Zahl in Dezimaldarstellung ausgibt und dabei alle Ziffern untereinander schreibt.
Also 465 als
4
6
5
Nun habe ich leider nicht ein mal einen Ansatz wie ich das zu schreiben habe. Ich kann ja nicht wie in Java einen String mit einer Zahl verbinden und damit bin ich dann auch schon mit meinem Latein am Ende.
Ich programmiere erst seit zwei Wochen, also bitte habt Gnade.
Soweit kenne ich lediglich While-Schleifen. :/
Ich wäre für ein wenig Hilfe sehr dankbar.
Re: Python Hausaufgabe / Dezimalzahlen untereinander ausgebe
Verfasst: Dienstag 22. Oktober 2013, 12:16
von Hyperion
Ansatz: Zahl in einen String umwandeln und diesen dann iterativ ausgeben

Re: Python Hausaufgabe / Dezimalzahlen untereinander ausgebe
Verfasst: Dienstag 22. Oktober 2013, 12:17
von BlackJack
@slythelly: Wenn Du nur ``while``-Schleifen kennst und mit den Grunddatentypen nicht umgehen kannst, dann solltest Du erst einmal ein Tutorial durcharbeiten, mindestens bis die nötigen Sprachkonstrukte und Datentypen dran waren. In der Python-Dokumentation ist ein Tutorial und für absolute Programmieranfänger wird
Learn Python The Hard Way oft empfohlen. (Nicht vom Titel irritieren lassen.)
Re: Python Hausaufgabe / Dezimalzahlen untereinander ausgebe
Verfasst: Dienstag 22. Oktober 2013, 12:34
von snafu
Ob es dafür wohl ein Python-Modulo gibt...?

Re: Python Hausaufgabe / Dezimalzahlen untereinander ausgebe
Verfasst: Dienstag 22. Oktober 2013, 12:41
von EyDu
Ein ganzes Modulo für so eine kleine Aufgabe? Ich bevorzuge dann doch eher die stringente Lösung.
Re: Python Hausaufgabe / Dezimalzahlen untereinander ausgebe
Verfasst: Dienstag 22. Oktober 2013, 12:42
von /me
snafu hat geschrieben:Ob es dafür wohl ein Python-Modulo gibt...?

Division oder
Modulo, das ist hier die Frage
.
Re: Python Hausaufgabe / Dezimalzahlen untereinander ausgebe
Verfasst: Dienstag 22. Oktober 2013, 13:12
von bwbg
Ich plädiere für eine funktional rekursive Lösung mit Division und Modulo.
Spaß beiseite.
Du benötigst eine Funktion um eine Zahl in eine Zeichenkette umzuwandeln (str). Eine for-Schleife und eine print-Funktion.
Grüße ... bwbg
Re: Python Hausaufgabe / Dezimalzahlen untereinander ausgebe
Verfasst: Dienstag 22. Oktober 2013, 13:15
von cofi
/me hat geschrieben:snafu hat geschrieben:Ob es dafür wohl ein Python-Modulo gibt...?

Division oder
Modulo, das ist hier die Frage
.
Da kann man aber geteilter Meinung sein!
Re: Python Hausaufgabe / Dezimalzahlen untereinander ausgebe
Verfasst: Dienstag 22. Oktober 2013, 13:19
von Sirius3
cofi hat geschrieben:Da kann man aber geteilter Meinung sein!
Solang man die Reste nicht unter den Tisch fallen läßt, sollte es egal sein.
@bwbg: ich würde eher sagen, es ist eine Frage des format.
Re: Python Hausaufgabe / Dezimalzahlen untereinander ausgebe
Verfasst: Dienstag 22. Oktober 2013, 13:51
von BlackJack
Also für die gesamte Aufgabe brauche ich kein `str()`. Der Benutzer gibt ja schon eine Zeichenkette ein. Die kann man gleich weiterverarbeiten. Eine explizite Schleife braucht es auch nicht um '\n' zwischen die einzelnen Buchstaben zu bekommen.
Re: Python Hausaufgabe / Dezimalzahlen untereinander ausgebe
Verfasst: Dienstag 22. Oktober 2013, 13:55
von EyDu
Möchtest du uns damit sagen, dass eine Lösung gerade mal 26 Zeichen, inklusive ``raw_input``, benötigt? Bzw. 24 unter Python 3.x.
Re: Python Hausaufgabe / Dezimalzahlen untereinander ausgebe
Verfasst: Dienstag 22. Oktober 2013, 14:02
von BlackJack
@EyDu: Ich denke ja. Es sind 27, aber da ist ein Leerzeichen drin welches man weglassen könnte.

Re: Python Hausaufgabe / Dezimalzahlen untereinander ausgebe
Verfasst: Dienstag 22. Oktober 2013, 14:07
von Hyperion
In Python 3.x ohne Leerzeichen komme ich auch auf 23

Re: Python Hausaufgabe / Dezimalzahlen untereinander ausgebe
Verfasst: Dienstag 22. Oktober 2013, 14:10
von Sirius3
@BlackJack: ich komm auf 27 ohne Leerzeichen, oder war das gemeint?
Re: Python Hausaufgabe / Dezimalzahlen untereinander ausgebe
Verfasst: Dienstag 22. Oktober 2013, 14:16
von EyDu
Sirius3 hat geschrieben:@BlackJack: ich komm auf 27 ohne Leerzeichen, oder war das gemeint?
27 mit Leerzeichen nach dem print, 26 ohne.
Hyperion hat geschrieben:In Python 3.x ohne Leerzeichen komme ich auch auf 23

Stimmt.

Re: Python Hausaufgabe / Dezimalzahlen untereinander ausgebe
Verfasst: Dienstag 22. Oktober 2013, 14:19
von snafu
Hyperion hat geschrieben:In Python 3.x ohne Leerzeichen komme ich auch auf 23

Ich auch. Aufgrund eines mysteriösen Fehlers kann ich die Lösung allerdings nur in superharter Geheimsprache posten...
Re: Python Hausaufgabe / Dezimalzahlen untereinander ausgebe
Verfasst: Dienstag 22. Oktober 2013, 14:56
von /me
Hyperion hat geschrieben:In Python 3.x ohne Leerzeichen komme ich auch auf 23

Hmmm, dann mach ich was falsch. Ich habe bisher nur 2 unterschiedliche Varianten mit 26 Zeichen.
Edit: Ach so, die Variante mit dem entpackten
vachg.
Re: Python Hausaufgabe / Dezimalzahlen untereinander ausgebe
Verfasst: Mittwoch 23. Oktober 2013, 08:51
von /me
EyDu hat geschrieben:Möchtest du uns damit sagen, dass eine Lösung gerade mal 26 Zeichen, inklusive ``raw_input``, benötigt? Bzw. 24 unter Python 3.x.
Unter 2.x komme ich jetzt auf 22 Zeichen runter.
In Python 3 geht das aufgrund des geänderten Verhaltens von
znc nicht mehr.
Edit: Was mir komplett entfallen war ist, dass ich in allen Python 2 Skripten immer ein
from __future__ import print_function im Header stehen habe. Fairerweise müsste man das eigentlich hinzuzählen, wodurch die Lösung dann nicht mehr so kurz ist.

Re: Python Hausaufgabe / Dezimalzahlen untereinander ausgebe
Verfasst: Mittwoch 23. Oktober 2013, 09:04
von BlackJack
@/me: Das ist in Python 2 ein Syntaxfehler. Und wenn Du den `__future__`-Import machst, damit es das nicht mehr ist, dann sind es deutlich mehr Zeichen.