Seite 1 von 2

ein Modul bei Python erstellen ?

Verfasst: Freitag 4. April 2014, 16:46
von Th3shadow
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

Re: ein Modul bei Python erstellen ?

Verfasst: Freitag 4. April 2014, 17:02
von Hellstorm
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 :)

Re: ein Modul bei Python erstellen ?

Verfasst: Freitag 4. April 2014, 17:07
von pillmuncher
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.

Re: ein Modul bei Python erstellen ?

Verfasst: Freitag 4. April 2014, 18:07
von Th3shadow
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 :/

Re: ein Modul bei Python erstellen ?

Verfasst: Freitag 4. April 2014, 18:22
von Sirius3
Im ersten Fall hast Du ein Leerzeichen vor dem "import" stehen. Im zweiten Fall verrätst Du ja nicht, was nicht geht ;-)

Re: ein Modul bei Python erstellen ?

Verfasst: Freitag 4. April 2014, 18:29
von Th3shadow
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 ? :)

Re: ein Modul bei Python erstellen ?

Verfasst: Freitag 4. April 2014, 19:12
von Sirius3
oh ja, da fehlt ein Doppelpunkt bei "volumequader".

Re: ein Modul bei Python erstellen ?

Verfasst: Freitag 4. April 2014, 19:25
von Th3shadow
Dankee für deine Hilfe
Hab ich korrigiert :/ aber das selbe Problem
schau dir diese Fotos
Bild
Bild

Re: ein Modul bei Python erstellen ?

Verfasst: Freitag 4. April 2014, 19:32
von darktrym
Du benutzt Python 3!
Und nochwas, lies mal ein Tutorial da hast mehr von den Tipps die man dir hier gibt.

Re: ein Modul bei Python erstellen ?

Verfasst: Freitag 4. April 2014, 19:35
von Th3shadow
darktrym
welche Version soll ich denn benutzen um das Problem zu lösen ? !
Danke für deine Antwort :)

Re: ein Modul bei Python erstellen ?

Verfasst: Freitag 4. April 2014, 19:40
von BlackJack
@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. ;-)

Re: ein Modul bei Python erstellen ?

Verfasst: Freitag 4. April 2014, 19:47
von Th3shadow
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 :)

Re: ein Modul bei Python erstellen ?

Verfasst: Freitag 4. April 2014, 20:16
von /me
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.

Re: ein Modul bei Python erstellen ?

Verfasst: Samstag 5. April 2014, 03:44
von Hellstorm
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.

Re: ein Modul bei Python erstellen ?

Verfasst: Samstag 5. April 2014, 08:34
von BlackJack
@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…

Re: ein Modul bei Python erstellen ?

Verfasst: Samstag 5. April 2014, 09:33
von mutetella
BlackJack hat geschrieben:Vielleicht sollte ich das in meine Signatur schreiben…
Wobei ich Deinen momentanen Hinweis auf die CoffeeScript Doku solipsism = true if mind? and not world? echt Klasse finde... :mrgreen:

mutetella

Re: ein Modul bei Python erstellen ?

Verfasst: Samstag 5. April 2014, 11:39
von Hellstorm
BlackJack hat geschrieben:@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…
Naja, gut, aber ich finde eine kleine Anmerkung à la „Den Code musst du mit Python 2 ausführen“ (direkt vor/nach dem Code) ist doch noch möglich ;)

Nur eine Anmerkung von mir, hier gibt es doch oft Leute, die da verunsichert sind.

Re: ein Modul bei Python erstellen ?

Verfasst: Samstag 5. April 2014, 12:36
von Darii
Hellstorm hat geschrieben:Ehrlich gesagt finde ich es hier unvorteilhaft, wenn jemand fertige Codeschnipsel ausgibt, die dann aber auf Python 2 enthalten. Das kann doch nur verwirren.
Und woher soll der geneigte „nicht-Anfänger“ wie valides Python3 aussieht? Das Problem ist bei mir zumindest, dass ich schlicht und ergreifend ständig vergesse dass Python 3 existiert. Python 3 vs. Python 2 ist wie D vs C++. Ein bisschen besser aber nicht genug dass man wechselt…
So läuft es ab und nicht anders. Wie man hier im Forum sieht, hat doch praktisch jeder, der Windows nutzt, Python 3.
Sämtliche Python-Distributionen für Windows (z.B. canopy, pythonxy) benutzen 2.7.

Re: ein Modul bei Python erstellen ?

Verfasst: Samstag 5. April 2014, 12:54
von snafu
Ich poste einfach Code, der unter beiden Versionen lauffähig ist. Insbesondere ist im Falle von Bildschirmausgaben ein ``from __future__ import print_function`` recht nützlich, um einer der häufigsten Problemquellen aus dem Weg zu gehen... :)

Re: ein Modul bei Python erstellen ?

Verfasst: Samstag 5. April 2014, 13:58
von darktrym
Mein Problem ist, dass ich dann denke es handle sich um eine Version die dann auf beiden läuft.
Leider gibts da noch andere Details die man gern übersieht.