Anfänge mit Python

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.
Camshot
User
Beiträge: 8
Registriert: Dienstag 6. März 2012, 23:09

Dienstag 6. März 2012, 23:17

Hallo ich bin eigenlich ganz neu beim Programmieren habe aber schon oft gelesen dass Python wirklich gut zum anfangen ist.
Meine Frage ist nun ob mir hier jemand ein gutes Buch empfehlen kann das möglichst hilfreich und klar die Grundlagen von Python erklärt.

MfG camshot
webspider
User
Beiträge: 485
Registriert: Sonntag 19. Juni 2011, 13:41

Dienstag 6. März 2012, 23:51

Die Leute hier schwören mehr auf die Dokumentationen, das offizielle Tutorial und Seiten wie Learn Python The Hard Way oder A Byte of Python. Allein schon aus dem Grund, weil diese immer aktuell bleiben und einem kostenlos zur Verfügung stehen im Gegensatz zu normalen Büchern.

Übrigens, cooler Nickname 8)
Camshot
User
Beiträge: 8
Registriert: Dienstag 6. März 2012, 23:09

Mittwoch 7. März 2012, 00:17

Erstmal danke :D
Und nur zur Info mich interresiert das Programmieren schon seit längerem also dachte ich vor ein paar Tagen mal ich könnte mit einer .bat Datei ja mal ein Skript schreiben mit dem man eine Spielversion ändert...gesagt, getan.
In meinem fall war es Minecraft da man dort nur eine .jar Datei ändern muss ich habe auch ein kleines Menü...
Mein Vorhaben ist es nun das ganze in Python zu machen mit einem simplen GUI und nehreren Optionen.
Das GUI ist natührlich darauf ankomment wie schwer es ist erstmal nebensache aber das wäre so mein erstes Ziel ;)!

MfG Camshot
Benutzeravatar
snafu
User
Beiträge: 5909
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Mittwoch 7. März 2012, 08:46

GUI *ist* verhältnismäßig schwer. Erstell doch erstmal eine Funktion (oder mehrere) mit der die rar-Datei entsprechend geändert werden kann. Wenn das fertig ist, kann man immer noch ne hübsche Grafikoberfläche drum herum bauen. Als Bibliothek könntest du rarfile benutzen.

Aber lies idealerweise bitte zuerst (mindestens überfliegend) das bereits vorgeschlagene Tutorial. Sonst weisst du nicht, was du machen sollst und es ist für alle anderen eher nervig, wenn tausende von Fragen gestellt werden, die im Tutorial beantwortet werden. Und du willst doch sicherlich keinen so schlechten Start hier im Forum haben... ;)
Benutzeravatar
Hyperion
Moderator
Beiträge: 7477
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Mittwoch 7. März 2012, 09:12

@snafu: Er sprach von "jar"-File - das ist doch nur ein "zip" afaik? Dann wäre das ``zipfile``-Modul aus der Standard-Lib wohl Anlaufstelle Nummer eins.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Benutzeravatar
/me
User
Beiträge: 3257
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Mittwoch 7. März 2012, 09:25

Camshot hat geschrieben:Mein Vorhaben ist es nun das ganze in Python zu machen mit einem simplen GUI und nehreren Optionen.
Wenn du dich ohne Vorwissen in Python direkt in GUI-Programmierung stürzen möchtest, dann hast du eine verdammte harte Zeit vor dir. Das Schlimmste wird sein, dass du unnötige, überflüssige und komplizierte Wege gehen wirst um Dinge zu erreichen.

Schau dir erst einmal die Basis an. Das offizielle Tutorial ist für den Einstieg ganz prima. Versuche deine Programme so zu schreiben, dass Programmlogik und Darstellung auf dem Bildschirm (inkl. Eingabe und Ausgabe) logisch voneinander getrennt sind. Das ermöglicht es dir beim späteren Einsatz einer GUI einfach auf bereits von dir erstellte Module zugreifen zu können statt mühsam alles wieder auseinandernehmen zu müssen.
Benutzeravatar
snafu
User
Beiträge: 5909
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Mittwoch 7. März 2012, 10:00

Hyperion hat geschrieben:@snafu: Er sprach von "jar"-File
Hab mich verlesen... :oops:
Benutzeravatar
Kebap
User
Beiträge: 421
Registriert: Dienstag 15. November 2011, 14:20
Wohnort: Dortmund

Mittwoch 7. März 2012, 12:48

Camshot hat geschrieben:Erstmal danke :D
Und nur zur Info mich interresiert das Programmieren schon seit längerem also dachte ich vor ein paar Tagen mal ich könnte mit einer .bat Datei ja mal ein Skript schreiben mit dem man eine Spielversion ändert...gesagt, getan.
In meinem fall war es Minecraft da man dort nur eine .jar Datei ändern muss ich habe auch ein kleines Menü...
Mein Vorhaben ist es nun das ganze in Python zu machen mit einem simplen GUI und nehreren Optionen.
Das GUI ist natührlich darauf ankomment wie schwer es ist erstmal nebensache aber das wäre so mein erstes Ziel ;)!

MfG Camshot
Willkommen an Bord! Wie ich sehe, willst du nicht nur Python lernen, sondern auch erstmal Programmieren allgemein. Das sind eigentlich unterschiedliche Themen, daher würde ich dir raten, nicht zu schnell voranzupreschen, sondern schön Schritt für Schritt die Konzepte anzusehen und aufeinander aufzubauen. Dadurch beherrschst du sie mit einiger Übung bald so gut, dass du nie wieder darüber nachdenken musst, wenn du endlich größere Programme umsetzt. :mrgreen:
MorgenGrauen: 1 Welt, 8 Rassen, 13 Gilden, >250 Abenteuer, >5000 Waffen & Rüstungen,
>7000 NPC, >16000 Räume, >200 freiwillige Programmierer, nur Text, viel Spaß, seit 1992.
Benutzeravatar
snafu
User
Beiträge: 5909
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Mittwoch 7. März 2012, 12:55

@Kebap: Genau. Es kommen ja nie neue Konzepte für einen dazu. Die kann man alle in einem Rutsch abarbeiten und dann kann man die Sprache perfekt anwenden. :mrgreen:
Camshot
User
Beiträge: 8
Registriert: Dienstag 6. März 2012, 23:09

Mittwoch 7. März 2012, 15:36

Also mein vorhaben fürs erste ist ja recht simple..
Der Batch-Code den ich bisjetzt geschrieben habe ist folgender

|
v

Code: Alles auswählen

@echo off
@mode con cols=55 lines=6
@title Minecraft Changer
COLOR A
:MAIN
cls
echo Pick an option!
echo.
echo To change Minecraft 1.2.3 to Minecraft 1.1.0 press 1
echo To change Minecraft 1.0.0 to Minecraft 1.2.3 press 2
echo To exit press 3
set choose=
set /p choose=
cls
if %choose% == 1 goto :ONE
if %choose% == 2 goto :TWO
if %choose% == 3 goto :END
exit
:TWO
COLOR B
@mode con cols=26 lines=4
cd %appdata%\.minecraft\bin
ren minecraft.jar minecraft.jar.1.1
ren minecraft.jar.1.2 minecraft.jar
cls
echo Finished!
echo.
echo Minecraft is now on 1.2.3
pause > nul
exit
:ONE
COLOR C
@mode con cols=26 lines=4
cd %appdata%\.minecraft\bin
ren minecraft.jar minecraft.jar.1.2
ren minecraft.jar.1.1 minecraft.jar
cls
echo Finished!
echo.
echo Minecraft is now on 1.1.0
pause > nul
exit
:END
COLOR D
@mode con cols=44 lines=2
echo This window is closing itself in 3 seconds!
ping localhost -n 3 > nul
exit

Und das vorhaben ist ja nur ein paar Daten umzubenennen und vllt auch dass es erkennt welche Version gerade benutzt wird.
Und was hat man eigentlich mit Python so alles für Möglichkeiten?
MfG Camshot
Zuletzt geändert von Anonymous am Mittwoch 7. März 2012, 16:47, insgesamt 1-mal geändert.
Grund: Quelltext in DOS-Code-Tags gesetzt.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7477
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Mittwoch 7. März 2012, 15:47

Ich verstehe weder Deine konkrete Frage, noch erkenne ich auf Anhieb, welches Problem mit der Batchdatei gelöst werden soll. Da musst Du schon präziser darstellen, was Du vor hast. (Speziell, da hier wohl eher wenige Leute sich extra mit Minecraft befassen wollen, nur um da Klarheit zu erlangen ;-) )
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Benutzeravatar
/me
User
Beiträge: 3257
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Mittwoch 7. März 2012, 15:49

Camshot hat geschrieben:Und was hat man eigentlich mit Python so alles für Möglichkeiten?
Diese. Und wenn dir das nicht reicht gibt es noch PyPI.
Benutzeravatar
snafu
User
Beiträge: 5909
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Mittwoch 7. März 2012, 15:51

@Camshot: Man kann alles mögliche mit Python machen. Naja, nicht alles, aber für die meisten Problemstellungen ausreichend viel, zumal es natürlich nachinstallierbare Fremdbibliotheken gibt, die speziellere Anwendungsfälle abdecken. Du selbst dürftest aber für dein Vorhaben erstmal mit den onboard-Mitteln auskommen.

Ich würde dir einen Blick in die Module os und shutil empfehlen, weil da u.a. Funktionen für Basisoperationen auf Dateien (Kopieren, Umbenennen, usw) enthalten sind, sowie os.path zum Hantieren mit Dateipfaden. Und nein, die gibt es nicht auf deutsch.

Wie du die Module importierst und vieles weitere steht dann im Tutorial. :)
Camshot
User
Beiträge: 8
Registriert: Dienstag 6. März 2012, 23:09

Mittwoch 7. März 2012, 16:11

Also die Batchdatei hat den Sinn eine Datei umzubenennen, damit man das nicht immer von Hand machen muss und mein Ziel ist es nun, dass das Programm auch die aktuelle Version des Spiels erkennt, z.B. dass die Version des Spiels immer in einer Textdatei steht und es diese automatisch liest und erkennt ...
also, dass das Spiel z.B. die Version 1.1 hat, aber es noch die Möglichkeit für die 1.0 und 0.9 gibt und wenn jetzt 1.1 in der Datei steht, erkennt, dass das Programm und weiß, was es ersetzten muss ... wie ich es sonst ausdrücken soll, weiß ich gerade auch nicht ...

MfG Camshot
Benutzeravatar
snafu
User
Beiträge: 5909
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Mittwoch 7. März 2012, 16:28

Camshot hat geschrieben:wie ich es sonst ausdrücken soll, weiß ich gerade auch nicht ...
Wobei das - auch wenn's klugscheißerisch klingt - ein wesentlicher Aspekt beim Programmieren ist: Man sollte schon klar beschreiben können, was man will. Bei relativ umfangreichen Projekten vielleicht nicht alles bis ins kleinste Detail, aber ein bloßes "komm, funktionier halt irgendwie" wird dich nicht sonderlich weit bringen. Mach dir einen Plan (im Kopf, auf Papier oder mit irgendwelchen Tools), welche Schritte wohl notwendig sind, um die-und-die Aufgabe zu erfüllen. Du kannst ja durchaus erstmal einen "Ast" verfolgen und dich später um den Rest kümmern.

Übrigens kann man das grundsätzlich auch ohne Pythonkenntnisse machen, sofern man ein bißchen Ahnung/Vorstellung von den notwendigen Operationen auf Betriebssystemebene in Zusammenhang mit Dateien hat. Da du ja offenbar schon ein bißchen Erfahrung mit Batch-Dateien sammeln konntest, ist das vielleicht eine ganz gute Grundlage für die nächsten Schritte... :)
Antworten