Einsteigersprache?

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.
alex99

Einsteigersprache?

Beitragvon alex99 » Dienstag 24. August 2004, 19:11

Mir wurde Python als Einsteigersprache ans Herz gelegt da es übersichtlich ist und schnell verständlich!
Nun die Frage an euch welche programmiersprache würdet ihr mir empfehlen ?
Bei Python hab ich Angst das ich das mit den Leerzeichen nicht versteh!

alex
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Beitragvon mawe » Dienstag 24. August 2004, 19:56

Hi!

Python ist eine hervorragende Einsteigersprache.
Das mit den Leerzeichen (besser gesagt der Einrückung) ist glaube ich gerade für Einsteiger hilfreich, weil der Code übersichtlicher wird. Ein Problem, naja sagen wir lästig, ist das eher für Leute die von anderen Programmiersprachen kommen (wie für mich :?). Ist am Anfang einfach ungewohnt, man gewöhnt sich allerdings sehr schnell daran :wink:.

Also nochmal: Python ist eine hervorragende Einsteigersprache :wink:

Viel Spaß beim Programmieren.

Gruß, mawe

PS: Wenn Du Fragen hast, weißt Du ja jetzt wo Du sie stellen kannst :wink:
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Dienstag 24. August 2004, 19:59

Hi alex,

also wenn du in einem Pythonforum nach einer Empfehlung für eine Sprache fragst, ist wohl klar, was du als Antwort bekommst ;)

Ich hab Erfahrung mit einigen Sprachen und würde dir trotzdem oder gerade deswegen Python empfehlen.

Mit den Leerzeichen meinst Du sicher daß Einrückungen bei Python zur syntax gehören, das is aber gar nciht schwer zu verstehen, wenn man das Prinzip von Funktionsblöcken verstanden hat, die in vielen Sprachen vorkommen und dann durch begin...end oder {...} eingeschlossen werden. Bei Python ist das nicht nötig sonder die Blöcke werden mit Hilfe von Einrückungen definiert, was nebenbei einen recht gut lesbaren Code ergibt.

Hier mal ein paar Beispiel:

C:

Code: Alles auswählen

if (a < b)
{
   printf("a ist kleiner als b");
}
/* hier gehs weiter */

Pascal:

Code: Alles auswählen

if (a < b)
begin
    writeln("a ist kleiner als b");
end
{hier gehts weiter}

Python:

Code: Alles auswählen

if a < b:
    print "a ist kleiner als b"
#hier gehts weiter

Die letzte Zeile ist jeweils ein Kommentar.

Einrückungen werden auch in anderen Programmiersprachen verwendet, gehören da aber nicht zur Sprachsyntax, sondern werden verwendet um den Code besser lesbar zu machen. Das C-Beispiel könne auch so geschrieben werden:

Code: Alles auswählen

if (a < b) { printf("a ist kleiner als b"); }

Ganz schlimm ists in Perl, da werden unter bestimmten Umständen Whitespaces (Leerzeichen, Tabulatoren, Zeilenumbrüche) überall erlaubt. Beispiel: http://www.sol.at/fritz/camel.txt
Das ist ein Funktionierendes Programm, wenn Du Linux hast, kannst es mal auf der Console ausführen lassen.

Mit einem guten Editor, brauchst Du dich aber nicht um die Einrückungen bei Python zu kümmern, das macht dann der Editor automatisch.


Gruß

Dookie

Code: Alles auswählen

#!/usr/bin/env python
import this
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Beitragvon mawe » Dienstag 24. August 2004, 20:11

Hi Dookie!

Dookie hat geschrieben:also wenn du in einem Pythonforum nach einer Empfehlung für eine Sprache fragst, ist wohl klar, was du als Antwort bekommst

Naja, hier sind ja nicht nur Leute die Python als ihre Lieblingssprache sehen (meine ist immer nocht Perl :oops:, aber nicht weil ich glaube daß sie besser als die anderen ist, sondern weil's meine Muttersprache ist :wink:).
In allgemeineren Foren bekommt man auf diese Frage Antworten wie Pascal, C, Java, ... :shock:

Dookie hat geschrieben:Beispiel: http://www.sol.at/fritz/camel.txt

Dafür liebe ich Perl. Warum kann man sowas nicht in Python schreiben :? (ich weiß, ich bin verrückt :D)

Gruß, mawe
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Dienstag 24. August 2004, 20:19

Hi mawe,

so gesehen ist Basic am C64 meine Muttersprache, aber ich kann heutzutage keinem Empfehlen sich einen alten C64 zu kaufen und ein paar Wochen mit Basic zu verbringen um zu erkennen das er da schnell an die Grenzen stöst und dann mit 6502-Assembler anfangen muß ;)
6502-Assembler:

Code: Alles auswählen

lda #65
jsr $ffd2



Gruß

Dookie

Code: Alles auswählen

#!/usr/bin/env python
import this
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Beitragvon mawe » Dienstag 24. August 2004, 20:27

Code: Alles auswählen

lda #65
jsr $ffd2

Sieht doch cool aus :D
Muttersprache ist vielleicht der falsche Ausdruck gewesen. Perl war einfach die erste Sprache die ich gut konnte und mit der das Programmieren wirklich Spaß gemacht hat (unter anderem wegen Camel-Code und dergleichen :wink:).

Meine tatsächliche Muttersprache ist Fortran 77, Spaßfaktor liegt allerdings unter Messgrenze :?


Gruß, mawe
DER Olf
User
Beiträge: 283
Registriert: Mittwoch 24. Dezember 2003, 19:32

Beitragvon DER Olf » Donnerstag 26. August 2004, 10:39

@Dookie: so ists richtig...

Code: Alles auswählen

if(a < b) then
begin
  (* bla bla bla *)
end;


ich hab mal ne zeitlang Delphi gemacht...und das hat mich genervt :D

mfg Olf
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Donnerstag 26. August 2004, 13:37

@ DER Olf:
stimmt, pascal ist bei mir auch schon ewiglange her ;)


Dookie

Code: Alles auswählen

#!/usr/bin/env python
import this
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Freitag 27. August 2004, 05:56

Für mich ist eine wichtiger Punkt für Python, das man gerade mit Python so flexibel ist:

    Windows / Linux
    Komandozeile / GUI
    Web / Lokal


Und vor allem, man bekommt für (fast) alle Probleme schon fertige Module, sofern Python das von sich aus noch nicht kann...

So flexibel ist keine andere Sprache... Oder?


Nebenbei Programmiere ich ein wenig in JavaScript: Da zum beispiel nervt mich total, das man jeden Befehl mit einem ; abschließen muß :x Das vergesse immer wieder...

Wobei ich bei

Code: Alles auswählen

for i in bla

auch immer wieder das : am ende vergesse... :lol:
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Beitragvon mawe » Freitag 27. August 2004, 09:08

Hi jens!

jens hat geschrieben:So flexibel ist keine andere Sprache... Oder?

Perl, Ruby, Lisp, ... eigentlich fast jede moderne Sprache (außer C und Fortran):wink:
Zum Thema Module: Da kann Python noch nicht mit Perl mithalten. Trotzdem würde ich Perl niemandem als Einstiegssprache empfehlen.

jens hat geschrieben:Da zum beispiel nervt mich total, das man jeden Befehl mit einem ; abschließen muß Das vergesse immer wieder...

Als ich mit Python begonnen habe, hat mich gestört, daß man kein ; schreiben muß/darf! Hab's immer geschrieben und mich dann über die Fehlermeldungen gefreut :? Mittlerweile freue ich mich über die Fehlermeldungen bei Perl, weil ich kein ; schreibe :wink:

jens hat geschrieben:Wobei ich bei

Code: Alles auswählen

for i in bla

auch immer wieder das : am ende vergesse...

An das hab ich mich schon gewöhnt. Jetzt freuen mich die Fehlermeldungen bei Ruby (da schreibt man nämlich kein :)

Klammern, Einrückung, Doppelpunkt, Semikolon, ...alles nur Gewöhnungssache :wink: Für Einsteiger ist aber sicherlich Python die angenehmste Wahl.

Gruß, mawe
joerg
User
Beiträge: 188
Registriert: Samstag 17. August 2002, 17:48
Wohnort: Berlin
Kontaktdaten:

Beitragvon joerg » Freitag 27. August 2004, 09:35

Hallo mawe,
mawe hat geschrieben:Als ich mit Python begonnen habe, hat mich gestört, daß man kein ; schreiben muß/darf! Hab's immer geschrieben und mich dann über die Fehlermeldungen gefreut :?


Fast überall ist es doch erlaubt, weil es eben explizit zum Trennen von Anweisungen auf einer Zeile dienen kann, oder erinnere ich mich hier falsch?

Mir fallen nämlich manchmal einige überflüssige ";" in meinem Python-Code auf, wenn ich C-Code nach Python überführe, und die Dinger versehentlich drinlasse...

Jörg

PS: Statt Perl würde ich Anfängern noch lieber Brainfuck ( http://de.wikipedia.org/wiki/Brainfuck ) empfehlen ... ;-)
"Sie sind nicht berechtigt, unrechtmäßige Kopien dieses Datenträgers zu erstellen." - Microsoft-Weisheit auf einer CD von MS-VisualC++-6.0
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Beitragvon mawe » Freitag 27. August 2004, 09:43

Hi!

joerg hat geschrieben:Fast überall ist es doch erlaubt, ...

Stimmt. Muß dann wohl an den {} gelegen haben :wink:
PS: Statt Perl würde ich Anfängern noch lieber Brainfuck ( http://de.wikipedia.org/wiki/Brainfuck ) empfehlen ...

Ist ja von der Lesbarkeit her ganz ähnlich :D

Gruß, mawe
rapidmax
User
Beiträge: 3
Registriert: Freitag 3. September 2004, 13:11

Beitragvon rapidmax » Freitag 3. September 2004, 13:56

Python ist sicher einfach und schnell zu erlernen. Wer damit anfängt, wird aber später Mühe mit anderen Sprachen haben. Ich persönlich bezeichne Python nicht als Anfänger-Sprache: Die Syntax ist zwar extrem einfach und konsequent, die Untypisiertheit verhindert Fehler. Gerade die Untypisiertheit und die Dynamik zur Laufzeit ermöglichen einen grossen Freiheitsgrad. Wer noch nie programmiert hat, wird hier schnell konzeptionelle Fehler machen, die entweder schon beim Wiederverwenden des Code zuschlägt, spätetstens aber, wenn in einer anderen Sprache versucht wird, im gleichen Stiel weiterzufahren.
Versteht mich nicht falsch: Ich rate nicht davon ab, mit Python anzufangen, aber ich warne davor, sich durch die einfache Syntax und die Dynamik blenden zu lassen: Ohne Erfahrung kann auch mit Python Spaghetti-Code programmiert werden, den niemand versteht und der sich nur mit Gewalt wieder weiterverwenden lässt!

Gruss, Andy

Apropos: Wer Brainfuck liebt, soll sich mal mit Whitespace befassen: http://www.fact-index.com/w/wh/whitespa ... uage_.html

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder