Python: Mit Zahlen jonglieren

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Anfänger!
User
Beiträge: 14
Registriert: Dienstag 30. April 2019, 08:37

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
Benutzeravatar
__blackjack__
User
Beiträge: 13103
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@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.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
__deets__
User
Beiträge: 14539
Registriert: Mittwoch 14. Oktober 2015, 14:29

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?
Anfänger!
User
Beiträge: 14
Registriert: Dienstag 30. April 2019, 08:37

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?
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

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.
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

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.
__deets__
User
Beiträge: 14539
Registriert: Mittwoch 14. Oktober 2015, 14:29

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.
Benutzeravatar
__blackjack__
User
Beiträge: 13103
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@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.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Anfänger!
User
Beiträge: 14
Registriert: Dienstag 30. April 2019, 08:37

__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.
Benutzeravatar
__blackjack__
User
Beiträge: 13103
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

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()
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Antworten