Listen darf ich nicht verwenden, weil wir noch nichts über dieses Thema gelernt haben.
Wie würde es denn anders gehen?
Hilfe beim Quelltext
Wie weit kennt ihr Strings?Dupstre hat geschrieben:Listen darf ich nicht verwenden, weil wir noch nichts über dieses Thema gelernt haben.
Wie würde es denn anders gehen?
Ist dir so etwas vertraut?
Code: Alles auswählen
value = 'Automatik'
result = value[:-5]
print(result)Das heißt also, dass ihr an Datentypen nur int, float und string kennt und bei string nicht einmal dessen elementare Möglichkeiten.Dupstre hat geschrieben:Nein. Leider ist mir das nicht bekannt..
Ich bin dann raus. Dazu fällt mir spontan nichts ein bzw. nur solche Lösungen die ich widerlich finde.
Nur eine Lösung, na gut:Bis auf die Rekursion nutzt diese Lösung nur Dinge, die Dir bekannt sein sollten. Ist aber für Python 2.x 
Code: Alles auswählen
def blackadder(n=0, s=''):
inp = raw_input()
if inp == '':
return s + '=' + str(n)
return blackadder(n + int(inp), inp if s=='' else s + '+' + inp)
print blackadder()- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
@Dupstre: Du hattest doch schon mal die folgende, wenn auch teilweise unschöne Zeile stehen:
Wieso ist die bei Deinem letzten Code nicht mehr vorhanden? Im Prinzip ist das ja die Lösung für Dich (Beachte, dass dieses kein "gutes" Python ist. Strings sollte man nicht per "+" zusammenbauen - sag das auch Deinem Lehrer; im Zweifel soll er sich mal hier im Forum melden
).
Das `str` ist natürlich überflüssig, da `eingabe` bei Dir ja eh ein String ist. Nun musst Du noch die "+" dazwischen bauen... das kann ja nicht so schwer sein.
Das "=" und das Endergebnis baust Du eben nach der Schleife zusammen.
Ich sehe hier zwar eher Python a la problembär, aber wenn es denn nun mal so verlangt wird... auf jeden Fall kann das doch jetzt nicht mehr so schwer sein!?
Code: Alles auswählen
b = str(b) + eingabe
Das `str` ist natürlich überflüssig, da `eingabe` bei Dir ja eh ein String ist. Nun musst Du noch die "+" dazwischen bauen... das kann ja nicht so schwer sein.
Das "=" und das Endergebnis baust Du eben nach der Schleife zusammen.
Ich sehe hier zwar eher Python a la problembär, aber wenn es denn nun mal so verlangt wird... auf jeden Fall kann das doch jetzt nicht mehr so schwer sein!?
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
-
Leonidas
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ich finde auch, er sollte hier eine perfekte Lösung posten. Ist eigentlich eine Steilvorlage für ihnHyperion hat geschrieben:Ich sehe hier zwar eher Python a la problembär, aber wenn es denn nun mal so verlangt wird... auf jeden Fall kann das doch jetzt nicht mehr so schwer sein!?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Die Auflösung der Rekursion mittels einer while True-Schleife sollte da schon für Verzückung sorgenLeonidas hat geschrieben:Ich finde auch, er sollte hier eine perfekte Lösung posten. Ist eigentlich eine Steilvorlage für ihn
-
BlackJack
Grrr, die Vorstellung war so gruselig, dass ich das prophylaktisch mal in Python gelöst habe.
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from itertools import imap
def main():
print 'Ganze Zahlen eingeben.'
print ' - Eingabetaste nach jeder Zahl.'
print ' - Leereingabe für Ergebnis.'
values = map(int, iter(raw_input, ''))
print ' + '.join(imap(str, values)), '=', sum(values)
if __name__ == '__main__':
main()So. Ich hab die Lösung und das ist sie:
Zwar konntet ihr mir nicht wirklich helfen, aber ich danke euch trozdem für eure Zeit.
Code: Alles auswählen
# Addierer.py
# Dieses Programm addiert Zahlen
eingabe = input("Geben Sie eine ganze Zahl ein:")
summe = int(eingabe)
while True:
rechnung = input("Geben Sie eine ganze Zahl ein:")
if rechnung == "":
break
summe = summe + int(rechnung)
eingabe = eingabe + "+" + rechnung
print(eingabe," = ",summe)Zwar konntet ihr mir nicht wirklich helfen, aber ich danke euch trozdem für eure Zeit.
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Wieso hast Du den Eingabe- und Berechnungscode doppelt, nämlich noch einmal *vor* der Schleife? Das ist ziemlich sinnlos und macht das Programm schwerer wartbar. Entferne das schnell wieder und lasse es doch so, wie Du es schon mal hattest!Dupstre hat geschrieben:So. Ich hab die Lösung und das ist sie:Code: Alles auswählen
eingabe = input("Geben Sie eine ganze Zahl ein:") summe = int(eingabe) while True: ...
Also das empfinde ich ja nun schon fast als Beleidigung. Wie bist Du denn auf die ZeileDupstre hat geschrieben: Zwar konntet ihr mir nicht wirklich helfen, aber ich danke euch trozdem für eure Zeit.
Code: Alles auswählen
eingabe = eingabe + "+" + rechnung
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
Ich werde es so lassen wie es ist, da man sonst nicht wirklich die Zeichenketten verbinden kann so wie man es muss.
Auf die Zeile bin ich nicht durch euch gekommen sondern durch die Musterlösung von meinem Lehrer.
Und der Rest hat mir auch nicht wirklich geholfen, wiel ich letzten endes nicht auf eine Lösung kam und erst auf die Musterlösung von meinem Lehrer warten musste.
Ihr habt zwar veruscht mir zu helfen, aber ihr habt einfach eine Reihe von "Befehlen" benutzt die ich nunmal nicht kenne und das hat mir nichts gebracht!
Auf die Zeile bin ich nicht durch euch gekommen sondern durch die Musterlösung von meinem Lehrer.
Und der Rest hat mir auch nicht wirklich geholfen, wiel ich letzten endes nicht auf eine Lösung kam und erst auf die Musterlösung von meinem Lehrer warten musste.
Ihr habt zwar veruscht mir zu helfen, aber ihr habt einfach eine Reihe von "Befehlen" benutzt die ich nunmal nicht kenne und das hat mir nichts gebracht!
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Wenn das die Musterlösung ist... naja... bitte merke Dir dazu, dass da lauter unschöne Sachen drin stehen.Dupstre hat geschrieben: Auf die Zeile bin ich nicht durch euch gekommen sondern durch die Musterlösung von meinem Lehrer.![]()
Dann lies Dir mal meine Beiträge durch. Ich sehe da nicht, inwiefern ich da irgend etwas benutzt habe, was Du noch nicht kennst / benutzen darfst. Ich habe Dich versucht zu genau folgender Lösung zu leiten:Dupstre hat geschrieben: Ihr habt zwar veruscht mir zu helfen, aber ihr habt einfach eine Reihe von "Befehlen" benutzt die ich nunmal nicht kenne und das hat mir nichts gebracht!
Code: Alles auswählen
summe = 0
rechnung = ""
while True:
eingabe = input("Geben Sie eine Zahl ein:")
if not eingabe:
break
summe += int(eingabe)
rechnung += eingabe + "+"
print(rechnung[:-1], "=", summe)
Einzig das Slicing im `print` mag etwas neues für Dich sein; das muss sein, um das letzte "+" zu eliminieren. Mit ein wenig Aufwand (einer zusätzlichen Variablen, die einen Statusflag a la "erster Durchlauf" enthält) könnte man sogar darauf verzichten und mit den bisher bekannten Sprachkonstrukten auskommen.
Ganz im Ernst: Du hast keinen Plan und hast Dir anscheinend auch keine Mühe gegeben, die Kommentare von uns nachzuvollziehen. Du hast in zig Postings Code gezeigt, der eine sonderbare Entwicklung aufzeigte. Du hast bereits sinnvolle Code-Abschnitte von Posting zu Posting wieder entfernt und entweder ganz weggelassen oder durch neue, schlechte Konstrukte ersetzt. Von einer Baustelle bist Du zur nächsten gesprungen, das bereits umgesetzte hast Du dabei aber stets aus den Augen verloren. So wird das nix mit dem Programmieren lernen
Letztlich ist es mir und uns ziemlich egal, wie Du in der Schule abschneidest. Aber wenn Du Deine Behauptungen tatsächlich ernst meinst, dann solltest Du Dich da noch einmal dran setzen. Denn verstanden hast Du das offensichtlich immer noch nicht...
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
