Blutiger Anfänger, verzweifelt, ledig, alt

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.
bb1898
User
Beiträge: 200
Registriert: Mittwoch 12. Juli 2006, 14:28

garreth hat geschrieben: das Buch ist schon gut. Es gibt nur einige Sachen, die unsauber sind. Ob dies so gewollt ist, um einen blutigen Anfänger nicht zu sehr zu verwirren, kann ich nicht beurteilen.
Ein Buch, das für Python-Anfänger geeignet sein soll und dann einen Anfänger ausgerechnet in Sachen Einrückung so im Regen stehen lässt? Ich kenne es nicht, aber allein das lässt mich doch arg zweifeln (allerdings zusammen mit schlechten Erfahrungen mit andern Galileo-Büchern).
Benutzeravatar
Lebensretter
User
Beiträge: 8
Registriert: Montag 12. Januar 2015, 15:56
Wohnort: CGN

Also das mit den Einrückungen ist echt so ne Sache. Sowohl das IDLE-Programm, als auch das Buch geben mir diese falsch an. Ich muss selbst rumprobieren und mithilfe des Feedbacks hier das Ding zurechtfummeln. Aber ich beiss mich schon durch. Im Grunde komme ich gut voran. Bin gerade bei Tupeln angelangt. Insgesamt versteh ich die Logik ganz gut. Woran es immer wieder hakt, sind diese "Kinderkrankheiten".
Beispiel: Ich schreibe Code und während ich tippe, sehe ich wie es funktioniert. Ich speichere ab und starte und er meldet mir direkt in der ersten Line einen Fehler. Das hab ich öfter gehabt, obwohl der Code so getippt wurde wie im Buch..

Eine Frage: Wie bekomme ich "kaputten code" aus dem IDLE-programm wieder raus ? Ich hab schon mehrfach Sachen probiert das rauszuschneiden bzw. ungeschehen zu machen. Nix klappt. Ich will print(Mehrf. ZUweisung:", x, y, z) rauskriegen. Aber es will einfach nicht raus. Weiter unten sieht man auch meine Probleme mit den Einrückungen. Freue mich auf kurzes Feedback eurerseits :-)

Beispiel:

Code: Alles auswählen

>>> #1: Mehrfache Zuweisung
>>> x, y, z = 3, 5.2, "hallo"
>>> print(Mehrf. ZUweisung:", x, y, z)
      
SyntaxError: invalid syntax
>>> print("Mehrf. Zuweisung:", x, y, z)
Mehrf. Zuweisung: 3 5.2 hallo
>>> #2: Auswirkungen erst danach
>>> a= 12
>>> b = 15
>>> c = 22
>>> a, b, c = c, a a+b
SyntaxError: invalid syntax
>>> a, b, c = c, a, a+b
>>> print("Auswirkung:", a, b, c)
Auswirkung: 22 12 27
>>> 
>>> # Verpacken eines Tupels
>>> p = 3, 4
>>> print("Verpackt:", p)
Verpackt: (3, 4)
>>> 
>>> #4: Entpacken eines Tupels
>>> m, n = p
>>> print("Entpackt: m:", m, "n:", n)
Entpackt: m: 3 n: 4
>>> #5: Falsche Zuweisung eines Tupels
>>> try:
	s, t = 3, 4, 12
	print(s, t)
    except:
	    
SyntaxError: unindent does not match any outer indentation level
>>> try:
	s, t = 3, 4, 12
	except:
		
SyntaxError: invalid syntax
>>> try:
	s, t = 3, 4, 12
	print(s, t)
except:
	print("Fehler")

	
Fehler
>>> #6: Rest in Liste
>>> print()

>>> x, *y, z = 3, 5.2, "hallo", 7.3, 2.9
>>> print(x)
3
>>> print(y)
[5.2, 'hallo', 7.3]
>>> print(z)
2.9
>>> 

Benutzeravatar
Lebensretter
User
Beiträge: 8
Registriert: Montag 12. Januar 2015, 15:56
Wohnort: CGN

Es ist halt echt frustrierend. Weil es anfängt Spass zu machen und immer wieder wird man ausgebremst.
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

@Lebensretter: was Du da siehst, ist der interaktive Modus, da was rauslöschen zu wollen, widerspricht sich, weil es ja schon ausgeführt wurde und damit futsch ist. Auch ist der interaktive Modus nicht dafür geeignet längere Programmteile einzugeben, sondern nur Einzeiler. Für längere Dinge nimmt man am besten einen Editor, der die Einrückung automatisch beherrscht, da wirst Du durch ">>>" dann auch nicht irritiert. Aber Du hast ja schon die wichtigste Lektion gelernt: einfach mal ausprobieren und sich nicht entmutigen lassen.
Serpens66
User
Beiträge: 259
Registriert: Montag 15. Dezember 2014, 00:31

hi :)
auch wenn ich absoluter Anfänger bin, möchte ich dennoch was zu den Einrückschwierigkeiten sagen, falls es sich um das Problem handelt, was ich auch oft hatte ;)

1. Auch #Kommentare müssen korrekt eingerückt sein (hat bei mir auch ne weile gedauert bis ich das akzeptieren konnte :D)
2. Ich verwende oft die TAB-Taste um die Einrückung von 4 Leerzeichen vorzunehmen. Dazu muss aber der genutzte Editor so eingestellt sein, dass er kein Tabulatorzeichen macht, sondern stattdessen halt 4 Leerzeichen. Wenn du Tabulatorzeichen und Leerzeichen mischst, kommt eig immer eine Fehlermeldung diesbezüglich. In Notepad++ (den editor kann ich weiterempfehlen), kannst du alle Tabulatorzeichen durch Leerzeichen ersetzen lassen :)

Ja, das sind die 2 Punkte die ich am Anfang oft falsch gemacht habe, vllt hilfts ja :)
Benutzeravatar
Lebensretter
User
Beiträge: 8
Registriert: Montag 12. Januar 2015, 15:56
Wohnort: CGN

Herzlichen Dank für die erneuten Tipps. Hab dann mit dem input gegoogelt und bin auf die Seite der Uni Frankfurt gestossen, wo auch direkt ActivePython empfohlen wird. Mein IDLE-Teil hab ich auch umgestellt.
Werde auch den anderen Tipp beherzigen und einfach weiter rumprobieren. Irgendwann wirds kontinuierlich klappen. Da bin ich sicher. Ich hab auf jeden Fall Feuer gefangen. Nur das ist wichtig. :-)
BlackJack

@Serpens66: Kommentare müssen nicht korrekt eingerückt werden. Man sollte das aber trotzdem tun weil sie sonst die eingerückte Struktur des Quelltextes optisch ”zerstören” und man rückt ja gerade deswegen ein, damit man die Codestruktur leicht erfassen kann.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

@BlackJack: Ich glaube Serpens66 meint Docstrings ;-)
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
Serpens66
User
Beiträge: 259
Registriert: Montag 15. Dezember 2014, 00:31

Ah danke für die Korrektur BlackJack und danke für die Infos dass es bei docstrings so ist Hyperion.
Vermutlich ist das Missverständnis in meinem Kopf durch die zu anfang verwendeten Tabulatorzeichen entstanden...
himiner5
User
Beiträge: 7
Registriert: Donnerstag 22. Januar 2015, 19:05

Ich bin auch ein blutiger Anfänger und kann das Buch das ich benutze nur empfehlen,
ich habe hier einen Link davon auf Amazon für dich, mir hilft das Buch sehr gut bei meinen nicht vorhandenen Kentnissen

Der Link: http://www.amazon.de/Python-kinderleich ... nderleicht
Antworten