Seite 1 von 2

Anfänge mit Python

Verfasst: Dienstag 6. März 2012, 23:17
von Camshot
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

Re: Anfänge mit Python

Verfasst: Dienstag 6. März 2012, 23:51
von webspider
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)

Re: Anfänge mit Python

Verfasst: Mittwoch 7. März 2012, 00:17
von Camshot
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

Re: Anfänge mit Python

Verfasst: Mittwoch 7. März 2012, 08:46
von snafu
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... ;)

Re: Anfänge mit Python

Verfasst: Mittwoch 7. März 2012, 09:12
von Hyperion
@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.

Re: Anfänge mit Python

Verfasst: Mittwoch 7. März 2012, 09:25
von /me
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.

Re: Anfänge mit Python

Verfasst: Mittwoch 7. März 2012, 10:00
von snafu
Hyperion hat geschrieben:@snafu: Er sprach von "jar"-File
Hab mich verlesen... :oops:

Re: Anfänge mit Python

Verfasst: Mittwoch 7. März 2012, 12:48
von Kebap
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:

Re: Anfänge mit Python

Verfasst: Mittwoch 7. März 2012, 12:55
von snafu
@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:

Re: Anfänge mit Python

Verfasst: Mittwoch 7. März 2012, 15:36
von Camshot
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

Re: Anfänge mit Python

Verfasst: Mittwoch 7. März 2012, 15:47
von Hyperion
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 ;-) )

Re: Anfänge mit Python

Verfasst: Mittwoch 7. März 2012, 15:49
von /me
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.

Re: Anfänge mit Python

Verfasst: Mittwoch 7. März 2012, 15:51
von snafu
@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. :)

Re: Anfänge mit Python

Verfasst: Mittwoch 7. März 2012, 16:11
von Camshot
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

Re: Anfänge mit Python

Verfasst: Mittwoch 7. März 2012, 16:28
von snafu
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... :)

Re: Anfänge mit Python

Verfasst: Mittwoch 7. März 2012, 16:51
von BlackJack
@Camshot: Ich würde statt umzubenennen eher die Dateien kopieren, also so das die beiden Original-Jar-Dateien nicht verändert oder umbenannt werden. So wie es jetzt funktioniert, kann man Daten verlieren wenn das Programm abbricht, oder man die falsche Option verwendet.

Falls das Dateisystem (echte) symbolische oder harte Links kennt (und man die von Batch oder Python aus verwenden kann) wäre das eine Alternative zum kopieren.

Re: Anfänge mit Python

Verfasst: Donnerstag 8. März 2012, 22:24
von Camshot
Also meine Grundliegende Idee ist bis jetzt dass das Programm die Version eines Spiels ändert.
Also sagen wir mal das Spiel hat die Version a; b; c und d.
Und die versionen sind in .jar daten gespeichert also muss nur eine Datei geändert werden.
Meine Idee ist nun dass das Programm die Version erkennt indem es z.B. Die aktuelle Version in ein Textdokument schreibt und dieses dann aufrufen kann damit es weiß was es in was ändern muss. Also das in dem Dokument nun z.B. b steht und dadurch weiss das Programm aha das Spiel hat die version b un deshalb kann man es z.B. nicht in die Version b ändern.
Dann kann man noch die Verschiedenen Versionen auswählen in die es geändert werden soll.
MfG Camshot
-
-
-
Edit: Wäre es eigentlich schlechter oder schwerer wenn ich mit C++ anfangen würde weil ich recht oft gelesen habe dass man zuerst Python lernen soll hab aber keine Begründung gefunden.

Re: Anfänge mit Python

Verfasst: Freitag 9. März 2012, 00:10
von BlackJack
@Camshot: C++ ist die deutlich komplexere Programmiersprache wenn man zwischen Python und C++ wählen muss.

Re: Anfänge mit Python

Verfasst: Freitag 9. März 2012, 19:30
von Camshot
Also momentan verusche ich mich fürs erste mal an einem code fürs renamen aber schon da fängt das Stottern an...
also dir meldungen bekomm ich ja hin mit

Code: Alles auswählen

print 'Hallo'
und das anhalten bis etwas vom benutzer komm is ja auch sehr basic

Code: Alles auswählen

raw_input()
aber nun mit dem os komm ich nur so weit:

Code: Alles auswählen

import os
os.path.dirname(r"C:\Py\Text1.txt")
Aber bei dem os.rename(old, new) kommt immer syntax error...
MfG Camshot

Re: Anfänge mit Python

Verfasst: Freitag 9. März 2012, 19:33
von nomnom
Camshot hat geschrieben:Aber bei dem os.rename(old, new) kommt immer syntax error...
Wir wissen jetzt natürlich nicht genau, was bei dir das Problem ist. Könntest du uns bitte zeigen, wie du es versucht hast? Sonst können wir nur raten …