Hallo Leute,
ich bin ein Anfänger und gerade dabei Python näher zuerkunden. Ich würde gerne einen Code programmieren, wo man zwei zahlen einginbt und python dnn dort de mittelwert berechnet. Gibt es sowas ? Geht sowas ?
Danke schonmal ^^ ich habe übrigens Python 2.4.4
Edit (Leonidas): Verschoben.
Suche einen Mittelwert Codeschnippsel !
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Hallo Mew, willkommen im Forum,
Ich habe mal den Thread verschoben, da dieses Forum zum Vorstellen von Codesnippets da ist und nicht zum suchen. Dafür sind "Allgemeine Fragen" da, und sowas heißt dann Hausaufgabe
Welches Mittel hättest du denn gerne? Das arithmetische? Das geometrische? Gewichtet oder ungewichtet?
Das einfachste arithmetische Mittel bekommst du ja ganz einfach: Du zählst die Werte zusammen und teilst sie durch die Länge. Dafür hast du in Python die Werkzeuge ``sum()``, ``len()`` und den Divisionsoperator. Nun ist es ganz einfach, viel Spaß beim selbstimplementieren
Ich habe mal den Thread verschoben, da dieses Forum zum Vorstellen von Codesnippets da ist und nicht zum suchen. Dafür sind "Allgemeine Fragen" da, und sowas heißt dann Hausaufgabe
Welches Mittel hättest du denn gerne? Das arithmetische? Das geometrische? Gewichtet oder ungewichtet?
Das einfachste arithmetische Mittel bekommst du ja ganz einfach: Du zählst die Werte zusammen und teilst sie durch die Länge. Dafür hast du in Python die Werkzeuge ``sum()``, ``len()`` und den Divisionsoperator. Nun ist es ganz einfach, viel Spaß beim selbstimplementieren
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
hmm also leider verstehe ich garnichts ^^^
ich habe es so probiert (klappt aber nicht)
ich habe es so probiert (klappt aber nicht)
Code: Alles auswählen
print "Gib eine Zahl ein: "
a = include()
print "Gib eine zweite Zahl ein: "
b = include()
m = (a+b)/2.0
print "Der Mittelwert von %f und %f ist %f." %(a, b, m)
Soweit alles richtig, bis auf das "include()". Wie bist du denn darauf gekommen?
Ersetze "include()" durch "raw_input()" oder besser "float(raw_input())" und es sollte gehen.
(Hinweis: Nutze nicht input; das ist eine Kurzform von eval(raw_input()) und bringt nur Probleme mit sich; input wird in Python3 deshalb auch verschwinden)
PS: Und schau mal ins Wiki, da gibt es Links zu guten Python Tutorials (A Byte Of Python und "Wie ein Informatiker denken lernen")
Ersetze "include()" durch "raw_input()" oder besser "float(raw_input())" und es sollte gehen.
(Hinweis: Nutze nicht input; das ist eine Kurzform von eval(raw_input()) und bringt nur Probleme mit sich; input wird in Python3 deshalb auch verschwinden)
PS: Und schau mal ins Wiki, da gibt es Links zu guten Python Tutorials (A Byte Of Python und "Wie ein Informatiker denken lernen")
ich hatte heute meine erste informatik stunde und das dort gemacht (dort hat es geklappt) und ich konnte mich nicht mehr so erinnern wie das geht, wollte das aber zuhause selber mal machen ^^ danke dir Joghurt
das klappt aber immer noch nicht:
das klappt aber immer noch nicht:
Code: Alles auswählen
print "Gib eine Zahl ein: "
a = float(raw_input())
print "Gib eine zweite Zahl ein: "
b = float(raw_input())
m = (a+b)/2.0
print "Der Mittelwert von %f und %f ist %f." %(a, b, m)
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Was heißt denn "es klappt nicht"? Bei mir klappt das schon.Mew hat geschrieben:das klappt aber immer noch nicht:
Außerdem würde ich die ``print``-Statements gegen ``raw_input(text_der_vorher_beim_print_war)`` eintauschen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Das reicht immer noch nicht als Information. Was passiert denn stattdessen? Hängt das Programm? Kommt einfach wieder der Shell-Prompt? Wie startest Du das Programm überhaupt?
- Rebecca
- User
- Beiträge: 1662
- Registriert: Freitag 3. Februar 2006, 12:28
- Wohnort: DN, Heimat: HB
- Kontaktdaten:
Eventuell wieder das Problem, das das Konsolen-Fenster einfach zugeht? Dann wird naemlich schon das richtige Ergebnis ausgegeben, nur dass du es so schnell nicht mehr lesen kannst. Rufe stattdessen erst die Konsole auf und starte das Programm in der Kommandozeile:
Dann bleibt die Konsole hinterher offen und du kannst alles lesen.
Code: Alles auswählen
python meinprogramm.py
Offizielles Python-Tutorial (Deutsche Version)
Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
cool danke, genau das meinte ich ^^Rebecca hat geschrieben:Eventuell wieder das Problem, das das Konsolen-Fenster einfach zugeht? Dann wird naemlich schon das richtige Ergebnis ausgegeben, nur dass du es so schnell nicht mehr lesen kannst. Rufe stattdessen erst die Konsole auf und starte das Programm in der Kommandozeile:
Dann bleibt die Konsole hinterher offen und du kannst alles lesen.Code: Alles auswählen
python meinprogramm.py
Eine andere Möglichkeit ist auch immer ans Ende des Programms folgendes zu schreiben:
Code: Alles auswählen
raw_input ("Return zum Beenden drücken. ")
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Und die Idee ist immer noch genauso blöd wie das letzte mal wo sie jemand vorgeschlagen hat.rotalever hat geschrieben:Eine andere Möglichkeit ist auch immer ans Ende des Programms folgendes zu schreiben
Leute, bitte vergesst diese Möglichkeit - sie ist schlicht und einfach unbrauchbar. Wenn ihr unbedingt Konsolennutzer ärgern wollt, dann nutzt bitte diesen Code - der kommt wenigstens mit Exceptions zurecht, statt genau dann das Fenster zu schließen, wenn eine interessante Ausgabe kommt.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Mag sein mag sein. Ich habe es immer genutzt und alle Anwender waren zufrieden. Keine Beschwerden, kein gar nix. Natürlich war das Programm zu diesem Zeitpunkt schon korrektLeonidas hat geschrieben:Und die Idee ist immer noch genauso blöd wie das letzte mal wo sie jemand vorgeschlagen hat.
.
Solltest vielleicht irgendwo etwas anpinnen... mit irgendwas, was in's Auge springt. Oder in "VOR DEM POSTEN LESEN" diese Sachen zur Sprache bringen oder das Wiki zumindest erwähnen.Leonidas hat geschrieben:Und die Idee ist immer noch genauso blöd wie das letzte mal wo sie jemand vorgeschlagen hat.rotalever hat geschrieben:Eine andere Möglichkeit ist auch immer ans Ende des Programms folgendes zu schreiben
Leute, bitte vergesst diese Möglichkeit - sie ist schlicht und einfach unbrauchbar. Wenn ihr unbedingt Konsolennutzer ärgern wollt, dann nutzt bitte diesen Code - der kommt wenigstens mit Exceptions zurecht, statt genau dann das Fenster zu schließen, wenn eine interessante Ausgabe kommt.
Zum Thema:
Ich versteh' nicht, wieso Informatiklehrer den Leuten immer zuerst raw_input beibringen. Sowas führt doch zwangsläufig zu solchen Fehlern. Erstmal beibringen, was 'ne Konsole is, was der Intepreter kann. Danach kann man den Leuten mal die Syntax näherbringen, am besten gleich in Kombination mit dem Intepreter. Aber nein, gleich Skripte mit raw_input anstatt Kommandozeilenparameter -_-
Eine Lösung mit Kommandozeilenparamtern und beliebig vielen Zahlen (Geht bestimmt noch 347923479mal eleganter und toller, aber das is jetzt schnell geschrieben...):
Code: Alles auswählen
#! /usr/bin/env python
# -*- coding: utf-8
import sys
if len(sys.argv) > 2:
numbers = []
for i in sys.argv[1:]:
numbers.append(float(i))
print "Durchschnittsumme: %.2f" % (sum(numbers)/len(numbers))
else:
print "Bitte geben sie 2 oder mehr Zahlen als Kommandozeilenargumente an!"
print "Verwendung: python Durchschnittssumme.py 27 48.32 15.213"
Code: Alles auswählen
#! /usr/bin/env python
# -*- coding: utf-8
import sys
def average_sum(number_list):
number_list = [float(x) for x in number_list]
return (sum(number_list)/len(number_list))
if __name__ == "__main__":
if len(sys.argv) > 2:
print "Average sum: %.2f" % (average_sum(sys.argv[1:]))
else:
print "Please enter 2 or more numbers as a argument"
print "Example:: python AverageSum.py 27 48.32 15.213"
Zuletzt geändert von BlackVivi am Dienstag 9. Oktober 2007, 08:56, insgesamt 2-mal geändert.
Bis auf die Konsolen Nutzer. Hint: Pipesrotalever hat geschrieben:Ich habe es immer genutzt und alle Anwender waren zufrieden. Keine Beschwerden, kein gar nix.
Ist doch das normalste, dass Programmiere ausschließlich fehlerfreie Programme schreiben *SCNR* und ist Ironisch zu verstehen.BlackJack hat geschrieben:Das Programm war *korrekt*!? Mutige letzte Worte…
Allerdings!! Aber man weiß ja im allgemeinen was man von "Informatiklehrern" zu halten hat (Ist nicht abwertend gemeint, aber der größte Teil der "Informatiklehrern" in Schulen hat doch wenig bis überhaupt keine Ahnung).BlackVivi hat geschrieben: Ich versteh' nicht, wieso Informatiklehrer den Leuten immer zuerst raw_input beibringen. Sowas führt doch zwangsläufig zu solchen Fehlern. Erstmal beibringen, was 'ne Konsole is, was der Intepreter kann. Danach kann man den Leuten mal die Syntax näherbringen, am besten gleich in Kombination mit dem Intepreter. Aber nein, gleich Skripte mit raw_input anstatt Kommandozeilenparameter -_-
Dein Beispiel empfinde ich als am saubersten und Sinnvollsten. Das lässt sich schöne Pipen und richtet sich in erster Linie an die Konsolen Fraktion, die viel mit bash, awak, sed, etc. Automatisieren
Und der Rest kann sich immer noch ein Frontend in Tk oder sonst was progen.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Klar, wenn das Fenster von selbst zu geht, sieht man keine Fehler,also ist das Programm auf irgend eine Weise schon "korrekt".rotalever hat geschrieben:Keine Beschwerden, kein gar nix. Natürlich war das Programm zu diesem Zeitpunkt schon korrekt
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Ja ok, ich gebs ja zu, die Lösung ist nicht optimal, aber man kann damit halt mal schnell so eine Sperre reinmachen, dass es nicht zugeht. Für kleinere Programme, die man jemand anders gibt, der sich mit Konsolen und so nicht auskennt, ist das eben die einfachste Lösung. Für komplexere Anwendungen ist es sowieso nicht wichtig das Fenster offen zu halten, da komplexere Anwendungen von Leuten mit mehr Erfahrung benutzt werden und die machen das dann eh auf der Konsole.Leonidas hat geschrieben: Klar, wenn das Fenster von selbst zu geht, sieht man keine Fehler,also ist das Programm auf irgend eine Weise schon "korrekt".
So, nachdem ich Schritt 1 (Überlegung einer Grundstruktur) und Schritt 2 (Funktional nochmal darüber nachdenken oO) kam ich nun zu Schritt 3 (Erstellung einer GUI):
Für die Gui brauch man die beiden Dateien, genau so benannt...:
AverageSum.py (Wie aus Schritt 2)
AverageSumGui.pyw
(Zur meiner Verteidigung, bevor ihr den Code zerpflückt, muss ich sagen, dass ich jede dieser Schritte diesmal nur rund 5 Minuten Zeit gewidmet habe. Diese Quelltexte sind definitiv keine Referenz für gut programmiertes Python! Sondern einfach nur mal so'ne Schritt für Schritt Überlegung von mir. Natürlich bin ich offen für andere Ideen... Meine WX Kenntnisse sind übrigens miserabel, deswegen is's halt auch so furchtbar._.)
Jetzt hat'r auf jedenfall Codeschnipsel.
Für die Gui brauch man die beiden Dateien, genau so benannt...:
AverageSum.py (Wie aus Schritt 2)
AverageSumGui.pyw
(Zur meiner Verteidigung, bevor ihr den Code zerpflückt, muss ich sagen, dass ich jede dieser Schritte diesmal nur rund 5 Minuten Zeit gewidmet habe. Diese Quelltexte sind definitiv keine Referenz für gut programmiertes Python! Sondern einfach nur mal so'ne Schritt für Schritt Überlegung von mir. Natürlich bin ich offen für andere Ideen... Meine WX Kenntnisse sind übrigens miserabel, deswegen is's halt auch so furchtbar._.)
Jetzt hat'r auf jedenfall Codeschnipsel.