Seite 1 von 1
Re: Anfängerin braucht Hilfe..
Verfasst: Montag 22. April 2013, 20:41
von Gary123456
Hallo,
Code: Alles auswählen
Zahl = int(input("Type any numbers: "))
Zahlenmenge = []
for i in range (2, Zahl + 1):
y = i * i
Zahlenmenge.append(y)
print Zahlenmenge
Das sollte ein Denkanstoß sein. Du machst Dir vieles zu kompliziert.
Diese Zeilen sind unnötig:
Code: Alles auswählen
print("Type any number:")
n=int(n)
i=1
i=i+1
y=(i*i) => Die Klammern
Mit meinem Code hast Du dieselbe Ausgabe mit viel kürzerem Code. Versuche ihn zu verstehen. Vll sollest Du als Übung erstmal Listen erstellen, Elemente hinzufuegen etc.
aber ich kann y nicht sortieren oder in eine liste tun - die fehlermeldung lautet "int object is not iterable".
Dazu bräuchten wir aber auch den Code + vollständige Fehlermeldung
EDIT: Mein COde ginge noch kürzer. Kleine Aufgabe für Dich: Wie würde mein Code noch kürzer gehen?
Re: Anfängerin braucht Hilfe..
Verfasst: Montag 22. April 2013, 20:54
von /me
Du hast die for-Schleife in Verbindung mit
range noch nicht verstanden oder nutzt zumindest die Möglichkeiten nicht aus.
range liefert dir die Zahlen im angegebenen Bereich. Mit dem
for i durchläufst du alle diese Zahlen in einer Schleife. Es gibt keine Notwendigkeit
i vorher auf irgendeinen Wert zu setzen oder
i innerhalb der Schleife manuell hochzuzählen.
Mir ist bisher nicht ganz klar geworden ob die 1 Teil der zu berechnenden Zahlen sein soll oder nicht. Du müsstest bei Bedarf die Parameter von
range entsprechend anpassen.
Re: Anfängerin braucht Hilfe..
Verfasst: Montag 22. April 2013, 21:08
von junii
danke für die hinweise. ich werde nochmal von vorn anfangen und mich mit diesen ausdrücken vertraut machen und die aufgaben dann für nächste woche bearbeiten.
Re: Anfängerin braucht Hilfe..
Verfasst: Dienstag 23. April 2013, 07:39
von /me
junii hat geschrieben:danke für die hinweise. ich werde nochmal von vorn anfangen und mich mit diesen ausdrücken vertraut machen und die aufgaben dann für nächste woche bearbeiten.
Ich habe hier mal eine simple Logik verwendet.
number ist die Zahl bis zu der berechnet werden soll.
result nimmt die Summe auf. In
infotext wird der auszugebende Text aufgebaut.
Code: Alles auswählen
number = 5
result = 0
infotext = ''
for i in range(1, number + 1):
# Ergebnisse aufaddieren
result += i * i
# Ausgabetext zusammensetzen
infotext += str(i * i) + ' + '
# Mal schauen wie es aussieht
print(infotext)
# letztes Plus-Zeichen und Leerzeichen abschneiden und die Summe ergänzen
infotext = infotext[:-2] + '= ' + str(result)
print(infotext)
Das funktioniert, ist aber nicht besonders schön.
Alternativ kommt jetzt hier eine sehr kurze Variante in der alle Zahlen in einer Liste gesammelt werden. Was beim
print passiert mag für einen Anfänger erst einmal erschreckend aussehen ist aber eigentlich gar nicht dramatisch. Das ließe sich für eine anfängliche Übersichtlichkeit auch durchaus auf mehrere Zeilen verteilen. Das Wesentliche ist der Ansatz alle Einzelergebnisse in einer Liste zu sammeln und dann damit zu arbeiten.
Code: Alles auswählen
number = 5
results = [i * i for i in range(1, number + 1)]
print('{} = {}'.format(' + '.join(map(str, results))), (sum(results)))