ein Modul bei Python erstellen ?

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.
Th3shadow
User
Beiträge: 9
Registriert: Freitag 4. April 2014, 15:59

Freitag 4. April 2014, 16:46

Hallo,
ich bin neu hier im Forum
wie kann ich ein Modul erstellen um das Volumen eines körper zu berechnen ? :)
ich warte auf eure Antwort
Vielen Dank im Vorraus
Hellstorm
User
Beiträge: 231
Registriert: Samstag 22. Juni 2013, 15:01

Freitag 4. April 2014, 17:02

Hallo,

zuerst müsstest du so vorgehen: Wie wird mathematisch das Volumen eines Körpers berechnet? Das findet man ja z.B. bei Wikipedia.

Wenn du das hast, schreibst du einfach eine Python-Funktion in einem beliebigen Texteditor, z.B. so:

Code: Alles auswählen

def berechne_volumen(....):
    return ....
Die Funktion bekommt dann die Parameter, die es zur Berechnung braucht. Im Funktionsbereich wird das dann berechnet ud anschließend zurückgegeben.

Als Modul benutzt du das dann, indem du einfach die Datei als volumen.py speicherst und sie in einer anderen Quellcode-Datei mit „import volumen“ einbindest. Anschließend kannst du „volumen.berechne_volumen(...)“ aufrufen, und du bekommst das Ergebnis :)
Benutzeravatar
pillmuncher
User
Beiträge: 1165
Registriert: Samstag 21. März 2009, 22:59
Wohnort: München

Freitag 4. April 2014, 17:07

Einfach. Angenommen, dein Körper ist eine Kugel, dann speichere diesen Code unter dem Namen sphere.py ab:

Code: Alles auswählen

from __future__ import division
import math

def volume(radius):
    return 4 / 3 * math.pi * radius ** 3
Damit hast du ein Modul erstellt. Anschließend kannst du dieses Modul importieren und verwenden:

Code: Alles auswählen

import sphere

if __name__ == '__main__':
    print sphere.volume(7)
Das gibt das Volumen einer Kugel mit dem Radius 7 aus.
In specifications, Murphy's Law supersedes Ohm's.
Th3shadow
User
Beiträge: 9
Registriert: Freitag 4. April 2014, 15:59

Freitag 4. April 2014, 18:07

Danke für eure Antowrt
ich hab versucht aber ich bekomme diesen Fehler :
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
import sphere
File "C:\Python34\sphere.py", line 2
import math
^
IndentationError: unexpected indent

Ps : wie man das Volumen berechnet das weiss ich doch
ich weiss nicht wie mann das bei Python macht
die frage ist wenn ich Das volumen eines Objekt berechnen will , das aus Kugel & Quader besteht
so hab ich geschrieben
from __future__ import division
import math

def volumekugel(radius):
return 4 / 3 * math.pi * radius ** 3
def volumequader(a,b,c)
return a*b*c
und dann speicherte ich unter dem Namen MeineFormel.py
aber geht nicht
ich brauche eure Hilfe :/
Sirius3
User
Beiträge: 11553
Registriert: Sonntag 21. Oktober 2012, 17:20

Freitag 4. April 2014, 18:22

Im ersten Fall hast Du ein Leerzeichen vor dem "import" stehen. Im zweiten Fall verrätst Du ja nicht, was nicht geht ;-)
Th3shadow
User
Beiträge: 9
Registriert: Freitag 4. April 2014, 15:59

Freitag 4. April 2014, 18:29

Danke für deine Antwort Sirius3
im zweiten fall kommt SyntaxError: invalid syntax raus !!
und die Markieren den Name des Modul
also wo ist der fehler ? :)
Sirius3
User
Beiträge: 11553
Registriert: Sonntag 21. Oktober 2012, 17:20

Freitag 4. April 2014, 19:12

oh ja, da fehlt ein Doppelpunkt bei "volumequader".
Th3shadow
User
Beiträge: 9
Registriert: Freitag 4. April 2014, 15:59

Freitag 4. April 2014, 19:25

Dankee für deine Hilfe
Hab ich korrigiert :/ aber das selbe Problem
schau dir diese Fotos
Bild
Bild
Benutzeravatar
darktrym
User
Beiträge: 723
Registriert: Freitag 24. April 2009, 09:26

Freitag 4. April 2014, 19:32

Du benutzt Python 3!
Und nochwas, lies mal ein Tutorial da hast mehr von den Tipps die man dir hier gibt.
„gcc finds bugs in Linux, NetBSD finds bugs in gcc.“[Michael Dexter, Systems 2008]
Bitbucket, Github
Th3shadow
User
Beiträge: 9
Registriert: Freitag 4. April 2014, 15:59

Freitag 4. April 2014, 19:35

darktrym
welche Version soll ich denn benutzen um das Problem zu lösen ? !
Danke für deine Antwort :)
BlackJack

Freitag 4. April 2014, 19:40

@Th3shadow: Du kannst entweder die Python-Version wechseln, bei Python 2.x war ``print`` noch eine Anweisung und keine Funktion, oder Du schreibst halt Code der unter Python 3.4 läuft. In der Python-Dokumentation gibt es ein Tutorial. Arbeite das doch mal durch.

Für absolute Anfänger wird auch oft Learn Python The Hard Way empfohlen. Nicht vom Namen abschrecken lassen. ;-)
Th3shadow
User
Beiträge: 9
Registriert: Freitag 4. April 2014, 15:59

Freitag 4. April 2014, 19:47

BlackJack
Danke für Ihre Antwort
ich hab die Python-Version zu 2.7.6 gewechselt , und endlich hat es geklappt
Danke an alle <3 <3
so macht Python spaß haha
Dankee nochmal :)
Benutzeravatar
/me
User
Beiträge: 3334
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Freitag 4. April 2014, 20:16

Th3shadow hat geschrieben:ich hab die Python-Version zu 2.7.6 gewechselt , und endlich hat es geklappt
Das war dann also die aufwändige Methode. print mit Klammern zu verwenden wäre ja deutlich schneller gegangen.
Hellstorm
User
Beiträge: 231
Registriert: Samstag 22. Juni 2013, 15:01

Samstag 5. April 2014, 03:44

Th3shadow hat geschrieben: Ps : wie man das Volumen berechnet das weiss ich doch
ich weiss nicht wie mann das bei Python macht
Jo, das war mir schon bewusst :D Die Vorgehensweise ist bei jeder Programmiersprache ja gleich:

1. Du schreibst eine Funktion, die die Parameter, die du zur Berechnung brauchst, entgegennimmt.
2. Du führst die notwendige Berechnung in der Funktion durch.
3. Du gibst den berechneten Wert wieder zurück.

Da du ja nicht genau geschrieben hast, was für einen Körper du berechnen willst, war eine spezielle Antwort halt schwierig. Außerdem hielt ich Hilfe zur Selbsthilfe sinnvoller :D

Für deine Frage ist es sinnvoller, sich ein Programmierbuch zuzulegen. Wenn du dich noch nicht mit Funktionen auskennst, die ja praktisch neben Variablen fast das Fundamentalste jeder Programmiersprache sind, dann hast du mit der Weiterverarbeitung auch ein Problem.
/me hat geschrieben:
Th3shadow hat geschrieben:ich hab die Python-Version zu 2.7.6 gewechselt , und endlich hat es geklappt
Das war dann also die aufwändige Methode. print mit Klammern zu verwenden wäre ja deutlich schneller gegangen.
Wer aber nicht weiß, wie man Funktionen nutzt, weiß auch nicht, dass der einer der Unterschiede von Python2→Python3 in der print-Funktion liegt.

Ehrlich gesagt finde ich es hier unvorteilhaft, wenn jemand fertige Codeschnipsel ausgibt, die dann aber auf Python 2 enthalten. Das kann doch nur verwirren. Ich schildere mal den Gedankengang eines Anfängers (Natürlich unter Windows, denn die wenigsten Leute benutzen Linux):

„Hm, ich möchte mir Python installieren! Google: Python eintippen, ah ich komme auf python.org. Download anklicken, hm, dort gibt es Python 3.4.0 und Python 2.7.6. Was soll ich denn da jetzt nehmen? Natürlich nehme ich die aktuelle Version, wieso auch nicht?“ Und dann führt er hier einen Code aus und es läuft nicht.

So läuft es ab und nicht anders. Wie man hier im Forum sieht, hat doch praktisch jeder, der Windows nutzt, Python 3. Und wieso auch nicht, das ist ja die aktuelle Version. Dann wird ihm hier im Forum (was wirklich sehr freundlich ist!) mit Codeschnipseln geholfen, die allerdings dann wie selbstverständlich auf Python 2 basieren, ohne ein Wort der Anmerkung. Das ist meiner Meinung nach einfach etwas realitätsfremd. Die Realität ist, dass Anfänger unter Windows Python 3 benutzen und nicht 2.

Lösungen meiner Meinung nach, die die erfahrenen Nutzer hier befolgen könnten:

- Python 3 benutzen: Das benutzen Anfänger heutzutage, ob man damit einverstanden ist oder nicht. Jedes aktuelle Buch zu Python basiert auf Python 3.
- Bei jedem Codebeispiel davorschreiben, ob der Code Python 2 oder Python 3 nutzt. Bei Linux ist ja leider das Problem, dass „python“ auf Python 2 zeigt, was dann insbesondere bei Raspberry-Pi-Nutzern dazu führt, dass sie doch noch Python 2 nutzen.

Ich finde es ja gut, wenn hier Anfängern geholfen wird (ich bin ja selber auch noch einer), aber meiner Meinung nach würden die obigen beiden Tipps sehr helfen, Verwirrung zu beseitigen.
BlackJack

Samstag 5. April 2014, 08:34

@Hellstorm: Das würde letztendlich dazu führen das ich keinen Anfängern mehr helfen würde. (Es gibt sicher Leute die das für einen Pluspunkt halten. ;-))

Ich schreibe halt Python 2.7 weil ich das auf jedem Rechner zuhause und in der Firma installiert habe und meine ganze „Entwicklungsumgebung” darauf eingestellt ist. Python 3 ist nicht auf jedem Rechner und eine 3.4 ist bis jetzt auf keinem.

Vielleicht sollte ich das in meine Signatur schreiben…
Antworten