Seite 1 von 1

Python: Mit Zahlen jonglieren

Verfasst: Donnerstag 2. Mai 2019, 14:24
von Anfänger!
HALLO! Habe folgende Herausforderungen die mir den ganzen Tag ohne Erfolg gekostet haben:

1. Gib 100 Zahlen aus. Jede Zahl ist 4 Mal so gross, wie die vorhergehende Zahl.
2. Speichere die Zahl in einer Liste (ich habe kein Plan in was für eine Liste). Was wäre die geeignetste Liste?
3. Gib den Durchschnitt der Zahlen aus der Liste aus
4. Gib die Anzahl der ungeraden Zahlen aus der Liste aus.
Besten Dank

Re: Python: Mit Zahlen jonglieren

Verfasst: Donnerstag 2. Mai 2019, 14:27
von __blackjack__
@Anfänger!: Eine geeignete Liste wäre eine die vorher leer ist. Liste ist ein Datentyp in Python. Vielleicht solltest Du mal ein Grundlagentutorial durcharbeiten. In der Python-Dokumentation gibt es eines.

Und dann wäre es gut wenn Du zeigen würdest was Du versucht hast. Und beschreiben wie und wo das von dem abweicht was Du erwartest. Falls eine Ausnahme kommt, die am besten 1:1 hier rein kopieren.

Re: Python: Mit Zahlen jonglieren

Verfasst: Donnerstag 2. Mai 2019, 14:27
von __deets__
Was soll jetzt passieren? Das dir das einer vorprogrammiert? Wird nicht passieren. Was hast du schon versucht? Womit kann man in Python dinge wiederholt machen? Wenn du fragst "welche Liste" - welche habt ihr denn schon kennengelernt. Es gibt in Python erstmal so nur eine, wurde die schon behandelt in der Schule/Uni/Kurs?

Re: Python: Mit Zahlen jonglieren

Verfasst: Donnerstag 2. Mai 2019, 14:46
von Anfänger!
Hallo zusammen. Danke für Eure Hinweise!
@_deets_ Wollte echt niemand verärgern oder so! Bin wirklich ein absoluter Beginner. Ich muss lernen selbst im Forum klar zu kommen :)

Habe das probiert:

Code: Alles auswählen

for i in range(100):
    print(i * 4)
aber die 100 Folgezahlen sind nicht immer 4x grösser als ihre Vorgänger

wegen der Liste, ich weiss nicht ob ich nur eine Variable (zb. Liste = [ ]) benutzen soll oder eine Datei hinterlegen. Wäre es dann einfach mit .py am Schluss? Würdet Ihr es so machen?

Re: Python: Mit Zahlen jonglieren

Verfasst: Donnerstag 2. Mai 2019, 14:53
von /me
Anfänger! hat geschrieben: Donnerstag 2. Mai 2019, 14:24 4. Gib die Anzahl der ungeraden Zahlen aus der Liste aus.
Das ist eine reine Logikfrage. Hier brauchst du nur die erste Zahl auf gerade/ungerade überprüfen und dann kennst du die Antwort.

Re: Python: Mit Zahlen jonglieren

Verfasst: Donnerstag 2. Mai 2019, 14:55
von /me
Anfänger! hat geschrieben: Donnerstag 2. Mai 2019, 14:46 wegen der Liste, ich weiss nicht ob ich nur eine Variable (zb. Liste = [ ]) benutzen soll oder eine Datei hinterlegen.
Das solltest du dann denjenigen fragen, der die Aufgabe gestellt hat.

Re: Python: Mit Zahlen jonglieren

Verfasst: Donnerstag 2. Mai 2019, 14:58
von __deets__
Ich sehe nicht, warum du da eine Datei benutzen solltest. Steht nirgendwo in deiner Beschreibung. Es wird eine normale Liste sein, denn die brauchst du ja nunmal um so Dinge wie den Durchschnitt etc. berechnen zu koennen.

Und das in deiner for-Schleife die Bedingung nicht erfuellt wird ist jetzt nicht weiter ueberraschend. Du multiplizierst ja nur den laufenden Index mit 4. Stattdessen musst du die Zahl *vorher* mit 4 multiplizieren. Dazu musst du sie dir merken.

Re: Python: Mit Zahlen jonglieren

Verfasst: Donnerstag 2. Mai 2019, 14:59
von __blackjack__
@Anfänger!: Na dann ist die Multiplikation wohl die falsche Rechenoperation. Es gibt ja noch andere…

Wie ist denn die Aufgabe tatsächlich formuliert, dass Du denkst es soll auch in einer Datei gespeichert werden? Falls ja, dann eher nicht mit *.py als Dateiendung, es sei denn da ist auch wirklich Python-Quelltext drin gespeichert. Wobei man Daten eher nicht als Python-Quelltext speichern sollte.

Re: Python: Mit Zahlen jonglieren

Verfasst: Donnerstag 2. Mai 2019, 15:05
von Anfänger!
__blackjack__ hat geschrieben: Donnerstag 2. Mai 2019, 14:59 @Anfänger!: Na dann ist die Multiplikation wohl die falsche Rechenoperation. Es gibt ja noch andere…

Wie ist denn die Aufgabe tatsächlich formuliert, dass Du denkst es soll auch in einer Datei gespeichert werden? Falls ja, dann eher nicht mit *.py als Dateiendung, es sei denn da ist auch wirklich Python-Quelltext drin gespeichert. Wobei man Daten eher nicht als Python-Quelltext speichern sollte.
Die Aufgaben sind genau so formuliert wie ich es geschrieben habe! Danke für den Tipp bzgl. dem Abspeichern.

Re: Python: Mit Zahlen jonglieren

Verfasst: Donnerstag 2. Mai 2019, 15:30
von __blackjack__
Da dann nicht in der Aufgabe steht mit welcher Zahl angefangen werden soll, fange ich mal mit 4 an, dann ist der Schnitt netterweise auch ”rund” und kann als ganze Zahl angegeben werden und muss nicht als Gleitkommazahl angegeben werden. :-D

Code: Alles auswählen

#!/usr/bin/env python3
from functools import partial
from itertools import islice
from operator import pow as pow_
from statistics import mean

from more_itertools import ilen, side_effect, tabulate


def main():
    count = 100
    print(
        f'{count} Zahlen bei denen jede 4× grösser als die vorhergehende ist:'
    )
    values = list(
        side_effect(print, islice(tabulate(partial(pow_, 4), 1), count))
    )
    print('Durchschnitt:', mean(values))
    print('Anzahl der ungeraden Zahlen:',
        ilen(filter(lambda n: n % 2 == 1, values))
    )


if __name__ == '__main__':
    main()