wie erstellt man mit python ein programm + anfängerfagen

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
ll9
User
Beiträge: 34
Registriert: Samstag 9. Februar 2013, 15:13

hallo ich bin neu im forum. ich möchte mich gleich entschuldigen fals ich gerade gegen irgendwelche regeln im forum verstoße, aber wenn ich zu der seite mit den regeln will kommt folgende fehlermeldung:

"Not Found

The requested URL /Forum/Regeln was not found on this server.
Apache/2.2.16 (Ubuntu) Server at wiki.python.de Port 80"

ich habe bereits ein paar stunden mit python hinter mir und dabei sind einige fragen aufgekommen. wenn ich in python ein programm schreibe speichere ich das ja im .py format ab. dieses format funktioniert folglicherweise jedoch nur bei personen, welche auch bereits python installiert haben. was muss ich den genau machen, dass wenn ich z.b einen taschenrechner erstelle diesen auch andere leute benutzen können?
wenn ich die .py datei selbst starte kommt auch nur ein nich schönes "exenartiges" fenster. dies lässt sich zwar durch drücken der rechten maustaste etwas editieren, was aber mir nicht reicht. wie kann man das denn programmieren, damit dieses fenster ein schöneres layout hat?

meine letze frage wäre: was bringt in python eigentlich die erste zeile? könnte mir das jemande genauer erklären? ich hab die englische erklärung nicht so ganz verstanden.

danke schonmal für eure hilfe.
BlackJack

@ll9: Die python.de-Domain scheint tot zu sein. Eine funktionierende URL: http://wiki.python-forum.de/Forum/Regeln

Du müsstest den anderen Leuten sagen sie sollen sich Python installieren. Alternativ kannst Du Dein Programm mit Python zusammen in einen Installer packen, aber das ist IMHO keine so schöne Lösung weil man dann für jedes noch so kleine Python-Programm immer wieder komplett Python mitinstalliert.

Textprogramme werden halt in der vom Endbenutzer bevorzugten beziehungsweise von dessen Betriebssystem vorgesehenen Konsole/Eingabeaufforderung/… ausgeführt. Da hat man keinen Einfluss drauf. Wenn man „schönere” Programme schreiben will, muss man eine GUI-Anwendung programmieren. Dazu braucht man ein GUI-Toolkit. Entweder `Tkinter`, was in der Python-Standardbibliothek vorhanden ist, und wo man sich über das „schön” streiten kann, oder eine Python-Anbindung an externe GUI-Bibliotheken wie Gtk, Qt, oder WxWidgets. Vorsicht: GUI-Programmierung ist ein fortgeschrittenes Thema bei dem man schon halbwegs sattelfest in objektorientierter Programmierung sein sollte, und wo als neues Konzept die ereignisbasierte Programmierung hinzu kommt. Und wenn man etwas anderes als `Tkinter` wählt, muss man das extra installieren und zumindest unter Windows auch daran denken, dass Endanwender das auch tun müssen, oder das man auch da wieder extra Arbeit in das schnüren eines Komplettpakets stecken muss.

Falls mit der ersten Zeile die „she bang”-Zeile gemeint ist, damit wird unter Betriebssystemen die Dateien nicht nach Dateiendungen Programmen zuordnen gesagt mit welchem Programm die Datei ausgeführt werden soll.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Hallo ll9, willkommen im Forum,
ll9 hat geschrieben:hallo ich bin neu im forum. ich möchte mich gleich entschuldigen fals ich gerade gegen irgendwelche regeln im forum verstoße, aber wenn ich zu der seite mit den regeln will kommt folgende fehlermeldung:

"Not Found

The requested URL /Forum/Regeln was not found on this server.
Apache/2.2.16 (Ubuntu) Server at wiki.python.de Port 80"
Funktionierende URL zu den Regeln.
ll9 hat geschrieben:ich habe bereits ein paar stunden mit python hinter mir und dabei sind einige fragen aufgekommen. wenn ich in python ein programm schreibe speichere ich das ja im .py format ab. dieses format funktioniert folglicherweise jedoch nur bei personen, welche auch bereits python installiert haben. was muss ich den genau machen, dass wenn ich z.b einen taschenrechner erstelle diesen auch andere leute benutzen können?
Python mitliefern ist die übliche Methode. Ich persönlich würde Python einfac dazu packen, andere nutzen so Lösungen wie py2exe oder PyInstaller, was ich aber nicht so berauschend finde.
ll9 hat geschrieben:wenn ich die .py datei selbst starte kommt auch nur ein nich schönes "exenartiges" fenster. dies lässt sich zwar durch drücken der rechten maustaste etwas editieren, was aber mir nicht reicht. wie kann man das denn programmieren, damit dieses fenster ein schöneres layout hat?
Gar nicht. Das ist einfach das Standardfenster für Konsolenprogramme. Wenn dir das nicht gefällt, musst du eine grafische Anwendung schreiben.
ll9 hat geschrieben:meine letze frage wäre: was bringt in python eigentlich die erste zeile? könnte mir das jemande genauer erklären? ich hab die englische erklärung nicht so ganz verstanden.

Code: Alles auswählen

print "Willkommen im Forum, ll9"
Die gibt den String aus. Du siehst, was als erste Zeile in einem Python-Skript steht ist relativ beliebig. Was du vermutlich eigentlich meintest ist Shebang und das wird in Wikipedia erklärt.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
ll9
User
Beiträge: 34
Registriert: Samstag 9. Februar 2013, 15:13

also wenn jemand ein python-programm nutzen will sollte man am besten python mitliefern? hmm wie wird das denn bei den ganzen anderen programmen aus dem internet gemacht, dort ist python (oder eben andere programmiersprachen) ja auch nicht dabei.
ll9 hat geschrieben:
wenn ich die .py datei selbst starte kommt auch nur ein nich schönes "exenartiges" fenster. dies lässt sich zwar durch drücken der rechten maustaste etwas editieren, was aber mir nicht reicht. wie kann man das denn programmieren, damit dieses fenster ein schöneres layout hat?

Gar nicht. Das ist einfach das Standardfenster für Konsolenprogramme. Wenn dir das nicht gefällt, musst du eine grafische Anwendung schreiben.
bei programmen wie taschenrechnern oder spezifischerweise word wäre keine schöne gestaltung des programms nicht weg zu denken, deswegen frag ich wie man sowas macht, um in zukunft auch mal professionelle programme schreiben zu können. diese grafische anwendung lässt sich dann auch einfach mit python schreiben oder?
Textprogramme werden halt in der vom Endbenutzer bevorzugten beziehungsweise von dessen Betriebssystem vorgesehenen Konsole/Eingabeaufforderung/… ausgeführt. Da hat man keinen Einfluss drauf. Wenn man „schönere” Programme schreiben will, muss man eine GUI-Anwendung programmieren. Dazu braucht man ein GUI-Toolkit. Entweder `Tkinter`, was in der Python-Standardbibliothek vorhanden ist, und wo man sich über das „schön” streiten kann, oder eine Python-Anbindung an externe GUI-Bibliotheken wie Gtk, Qt, oder WxWidgets. Vorsicht: GUI-Programmierung ist ein fortgeschrittenes Thema bei dem man schon halbwegs sattelfest in objektorientierter Programmierung sein sollte, und wo als neues Konzept die ereignisbasierte Programmierung hinzu kommt. Und wenn man etwas anderes als `Tkinter` wählt, muss man das extra installieren und zumindest unter Windows auch daran denken, dass Endanwender das auch tun müssen, oder das man auch da wieder extra Arbeit in das schnüren eines Komplettpakets stecken muss.
andere programme sind ja auch schöner gestalltet, fällt mir das nur nicht auf, dass man dort diese ganzen sachen zusätzlich instalieren muss (bei der installation dacht ich ja immer der instaliert nur das programm selbst) oder wie läuft das genau ab?
Falls mit der ersten Zeile die „she bang”-Zeile gemeint ist, damit wird unter Betriebssystemen die Dateien nicht nach Dateiendungen Programmen zuordnen gesagt mit welchem Programm die Datei ausgeführt werden soll.
ja ganz genau die "she bang"-Zeile meine ich. ich hab die bis jetzt immer weg gelassen. könntest du mir diese an einen beispiel vielleicht genauer erläutern?
BlackJack

@ll9: Wenn ein Programm eine Laufzeitumgebung benötigt, dann muss man die entweder mitliefern, oder sie muss schon auf dem Zielrechner vorhanden sein. Das ist letztendlich bei jeder Programmiersprache so. Ein Programm in einer .NET-Sprache wird nicht ohne .NET-Laufzeitumgebung funktionieren, ein Java-Programm nicht ohne die Java-Klassenbibliothek, ein klassisches VisualBasic-Programm nicht ohne die passende vbrun*.dll, und so weiter. Bei verschiedenen Systemen kann man in der Regel verschiedene Laufzeitumgebunden schon voraussetzen. Auf einem aktuellen Windows-System ist .NET meistens vorhanden, und unter Linux oder MacOS sollte es schon ein Python 2.x geben.

Ich denke Text- versus GUI-Anwendung ist keine Frage der schönen Gestaltung, sondern des Bedienkonzepts. Es gibt Programme, bei denen macht eine Textoberfläche nicht viel Sinn, und solche bei denen eine GUI zumindest nicht notwendig ist. Kommandozeilen-Programme sind auch nicht per se unprofesionell.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

ll9 hat geschrieben:also wenn jemand ein python-programm nutzen will sollte man am besten python mitliefern? hmm wie wird das denn bei den ganzen anderen programmen aus dem internet gemacht, dort ist python (oder eben andere programmiersprachen) ja auch nicht dabei.
Ja doch, ganz oft sogar. Wenn du schaust wie oft du das Visual Studio 2005 Redistributable auf einem typischen Windows-Rechner findest, dann merkst du schon, wie oft einfach sowas mitgeliefert wird, ohne dass dir als User das gesagt wird. Weil, wozu auch? Braucht dich ja nicht zu interessieren, so als User.
ll9 hat geschrieben:bei programmen wie taschenrechnern oder spezifischerweise word wäre keine schöne gestaltung des programms nicht weg zu denken, deswegen frag ich wie man sowas macht, um in zukunft auch mal professionelle programme schreiben zu können. diese grafische anwendung lässt sich dann auch einfach mit python schreiben oder?
Wie BlackJack meinte, gehen tut das schon und man hat mit Qt, GTK+ und wxWidgets eine Menge auswahl. Allerdings "einfach" ist so eine Sache - man sollte schon relativ sattelfest im Programmieren sein.
ll9 hat geschrieben:andere programme sind ja auch schöner gestalltet, fällt mir das nur nicht auf, dass man dort diese ganzen sachen zusätzlich instalieren muss (bei der installation dacht ich ja immer der instaliert nur das programm selbst) oder wie läuft das genau ab?
Naja, im Installer sind einfach die Dateien des Programmes und der Laufzeitumgebung drin und werden einfach zusammen kopiert. Hast du mal geschaut was so ein Programm üblicherweise installiert? Man sieht das übrigens bei Steam-Spielen ganz gut, wo jedes Spiel erstmal bei der Installation erstmal DirectX installiert.
ll9 hat geschrieben:
Falls mit der ersten Zeile die „she bang”-Zeile gemeint ist, damit wird unter Betriebssystemen die Dateien nicht nach Dateiendungen Programmen zuordnen gesagt mit welchem Programm die Datei ausgeführt werden soll.
ja ganz genau die "she bang"-Zeile meine ich. ich hab die bis jetzt immer weg gelassen. könntest du mir diese an einen beispiel vielleicht genauer erläutern?
Okay:

Code: Alles auswählen

#!/usr/bin/env python3
Das heißt, dass im Ordner ``/usr/bin`` das Programm ``env`` gesucht wird, und dieses mit dem Parameter ``python3`` sowie der Datei gestartet wird. Im Falle von ``env`` sucht es einfach nach einem Programm dass ``python3`` heißt und führt dieses aus.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
ll9
User
Beiträge: 34
Registriert: Samstag 9. Februar 2013, 15:13

dank eurer antworten hab ich jetzt größtenteils alles verstanden, danke.
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

ll9 hat geschrieben:also wenn jemand ein python-programm nutzen will sollte man am besten python mitliefern? hmm wie wird das denn bei den ganzen anderen programmen aus dem internet gemacht, dort ist python (oder eben andere programmiersprachen) ja auch nicht dabei.
Doch, dir fällt es nur nicht auf. Zum Teil sind die Python-Skripte eingebettet, zum Teil stellen sie das Hauptprogramm dar.
Antworten