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.
Python Hausaufgabe / Dezimalzahlen untereinander ausgeben
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Ansatz: Zahl in einen String umwandeln und diesen dann iterativ ausgeben
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
@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.)
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
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
"Du bist der Messias! Und ich muss es wissen, denn ich bin schon einigen gefolgt!"
- cofi
- Python-Forum Veteran
- Beiträge: 4432
- Registriert: Sonntag 30. März 2008, 04:16
- Wohnort: RGFybXN0YWR0
Da kann man aber geteilter Meinung sein!/me hat geschrieben:Division oder Modulo, das ist hier die Frage.snafu hat geschrieben:Ob es dafür wohl ein Python-Modulo gibt...?
Michael Markert ❖ PEP 8 Übersetzung ❖ Tutorial Übersetzung (3.x) ⇒ Online-Version (Python 3.3) ❖ Deutscher Python-Insider ❖ Projekte
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.
@EyDu: Ich denke ja. Es sind 27, aber da ist ein Leerzeichen drin welches man weglassen könnte.
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
In Python 3.x ohne Leerzeichen komme ich auch auf 23
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
27 mit Leerzeichen nach dem print, 26 ohne.Sirius3 hat geschrieben:@BlackJack: ich komm auf 27 ohne Leerzeichen, oder war das gemeint?
Stimmt.Hyperion hat geschrieben:In Python 3.x ohne Leerzeichen komme ich auch auf 23
Das Leben ist wie ein Tennisball.
Ich auch. Aufgrund eines mysteriösen Fehlers kann ich die Lösung allerdings nur in superharter Geheimsprache posten...Hyperion hat geschrieben:In Python 3.x ohne Leerzeichen komme ich auch auf 23
Code: Alles auswählen
cevag(*vachg(),frc='\n')
Hmmm, dann mach ich was falsch. Ich habe bisher nur 2 unterschiedliche Varianten mit 26 Zeichen.Hyperion hat geschrieben:In Python 3.x ohne Leerzeichen komme ich auch auf 23
Edit: Ach so, die Variante mit dem entpackten vachg.
Unter 2.x komme ich jetzt auf 22 Zeichen runter.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.
Code: Alles auswählen
znc(cevag,enj_vachg())
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.
Zuletzt geändert von /me am Mittwoch 23. Oktober 2013, 09:05, insgesamt 1-mal geändert.
@/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.