if else

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
lukasmarti
User
Beiträge: 31
Registriert: Samstag 8. April 2006, 17:10
Wohnort: lachen (schweiz)

bei mir funktioniert das if und else nie kann mir jemand sagen was ich falsch mache.

>>> if x>5:
print "ok"
else:

IndentationError: unindent does not match any outer indentation level (<pyshell#2>, line 3)
>>>

DANKE SCHON MAL[/code]
Korsakov
User
Beiträge: 15
Registriert: Samstag 8. April 2006, 20:03

hab zwar nicht viel ahnung von python (noch), aber ich denke der fehler ist der: nach dem "else:" einfach ne code anweisung! z.b:

Code: Alles auswählen

if bla < blub:
  print 'blub blub'
else:
  break
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Hast du mal überlegt, was du da in den Händen hältst? Das ist Python, eine der Sprachen in deren Charakterisierung fast immer steht dass sie auf Einrückung bestehen (siehe Strukturierung durch Einrücken in der Wikipedia).

Code: Alles auswählen

In [11]: if x > 5:
   ....:     print 'ok'
   ....: else:
   ....:     print 'nicht ok'
Sorry, wenn ich böse klinge, aber man sollte sich doch zumindest ein wenig mit der Sprache beschäftigen, das spart viel Fragerei.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
lukasmarti
User
Beiträge: 31
Registriert: Samstag 8. April 2006, 17:10
Wohnort: lachen (schweiz)

danke für die antworten aber rükt python die zeilen selber ein???????
es funktioniert immer noch nicht
Korsakov
User
Beiträge: 15
Registriert: Samstag 8. April 2006, 20:03

ne, die einrückung musst du selber machen, sobald die nicht stimmt: error

lies dir mal lieber einn gutes tutorial durch, empfehlen kann ich dir "A Byte of Python" (deutsche übersetzung): http://abop-german.berlios.de/read/index.html
lukasmarti
User
Beiträge: 31
Registriert: Samstag 8. April 2006, 17:10
Wohnort: lachen (schweiz)

und was bedeutet in[11]
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

lukasmarti hat geschrieben:und was bedeutet in[11]
Das ist der Prompt von IPython, einer interaktiven Python Konsole.
TUFKAB – the user formerly known as blackbird
henning
User
Beiträge: 274
Registriert: Dienstag 26. Juli 2005, 18:37

An diesem Beispiel sieht man auch gut, das man die Fehlermeldungen des Python-Interpreters ruhig mal näher anschauen kann, ab und zu gibt einem das nämlich tatsächlich die Richtung an, in der der Fehler zu suchen ist ;-)
helmut
User
Beiträge: 57
Registriert: Mittwoch 2. November 2005, 07:45
Wohnort: Dormagen

Hallo,

ehe es zu weiteren Missverstaendnissen kommt, kommt hier der "nackte" Code:

Code: Alles auswählen

if x>5:
    print "OK"
else:
    print "nicht OK"
Gruss, Helmut
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

lukasmarti hat geschrieben:rükt python die zeilen selber ein???????
Nein, woher soll Python denn wissen, wann er einrücken muss und wann nicht? IPython kann neben einer Menge anderer Sachen auch Halbautomatisch einrücken.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
Mr_Snede
User
Beiträge: 387
Registriert: Sonntag 8. Februar 2004, 16:02
Wohnort: D-Dorf, Bo

Vielleicht hilft ein kleines Video zur Benutzung der Pythonshell weiter:
--> http://showmedo.com/videoPage?name=Test ... nMSWindows

Leonidas benutze in seinem vorigem Post mit der "[11]"(wie er schon erwähnte) eine erweiterte Pythonshell Namens Ipython.
auch dazu gibt es Videos:
--> http://showmedo.com/videoListPage?listK ... hon_JerolH

Eine Übersicht über weitere (Python)Videos gibt es hier:
--> http://showmedo.com/videoListPage?listK ... PythonList

@Leonidas
Nein, woher soll Python denn wissen
Vielleicht am Doppelpunkt am Ende einer Zeile wie jeder Editor mit Pythonsupport auch?
Die IDLE Shell rückt automatisch ein.

cu Sebastian
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Mr_Snede hat geschrieben:Vielleicht am Doppelpunkt am Ende einer Zeile wie jeder Editor mit Pythonsupport auch?
Die IDLE Shell rückt automatisch ein.
Ein-Rücken schon, aber Aus-rücken geht nicht.

Ich finde ja SciTEs verhalten bei sowas lustig:

Code: Alles auswählen

blah = blahbla[1:]
dann versucht er die nächste Zeile einzurücken.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
Mr_Snede
User
Beiträge: 387
Registriert: Sonntag 8. Februar 2004, 16:02
Wohnort: D-Dorf, Bo

jupp über dieses Verhalten von Scite bin ich auch schon gestolpert.
Aber bisher überwiegen die Fälle in denen Scite richtig einrückt somit stört mich das nicht.

Hmm wäre das nicht ein super Patent?
Automatisches Deindent, wenn der Verfasser es will?
Das Schlimme ist, es gibt bestimmt jemand, der das schon angemeldet hat. :shock:

cu Sebastian
Benutzeravatar
birkenfeld
Python-Forum Veteran
Beiträge: 1603
Registriert: Montag 20. März 2006, 15:29
Wohnort: Die aufstrebende Universitätsstadt bei München

Mr_Snede hat geschrieben: Hmm wäre das nicht ein super Patent?
Automatisches Deindent, wenn der Verfasser es will?
Das Schlimme ist, es gibt bestimmt jemand, der das schon angemeldet hat.
Python wird bald den Operator "is not" aus der Sprache schmeißen müssen, der ist nämlich von Microsoft patentiert.
BlackJack

birkenfeld hat geschrieben:Python wird bald den Operator "is not" aus der Sprache schmeißen müssen, der ist nämlich von Microsoft patentiert.
Nur wenn der Operator ``IsNot`` geschrieben würde und Python eine von BASIC abgeleitete Sprache wäre.

Ansonsten würde das Patent auch den ``!=`` Operator in Java betreffen, der genau das gleiche tut.
modelnine
User
Beiträge: 670
Registriert: Sonntag 15. Januar 2006, 18:42
Wohnort: Celle
Kontaktdaten:

Nur wenn der Operator ``IsNot`` geschrieben würde und Python eine von BASIC abgeleitete Sprache wäre.
Nichtsdestotrotz ist dieses eines dieser "Trivialpatente," für die man eigentlich keinen Patentschutz erteilen dürfte, weil die Idee hinter einer logischen Veneinung in Verbindung mit einer Identitätsprüfung sicherlich nichts neues ist, und sich trivialerweise aus der Verknüpfung zweier bereits existierender Operatoren ergibt. Dass so ein Patent trotzdem verteilt wird und vor Gericht bestand hat stellt aus meiner Sicht erstens ein Armutszeugnis für das Allgemeinwissen der netten Nachbarn überm großen Teich aus, und zum anderen auch ein Armutszeugnis für eine Firma wie Microsoft. Aber, letztere sind mit solchen Patenten ja nicht die einzigen, gibt genügend Firmen (wie zum Beispiel auch SAP) die genügend Geld mit solchen Trivialpatenten machen wollen, aber es zumindest in Europa noch nicht können.

Gut, dass zumindest das EU-Parlament genügend Einsicht gezeigt hat und die letzte Patentnovelle gekippt hat. Mal schauen wie lange diese Haltung noch anhält, und das große Geld genügend Entscheidungsträger eingekauft hat, so dass das Gesetz in neuer Lesung passieren kann. Bis dahin bin ich aus Europa hoffentlich ausgewandert, in eine bessere Welt. Humm... Vielleicht sollte ich mir das noch mal überlegen; die WTO ist überall.
--- Heiko.
Antworten