Seite 1 von 1

Totale Anfängerfragen: in den sekundären Prompt wechlseln

Verfasst: Sonntag 6. April 2003, 14:45
von Anfänger
Ich bin ein absoluter Anfänger, darum entschuldigt bitte so eine dumme Frage:

Wie kann ich im interaktiven Modus in den sekundären Prompt (...) wechseln?

Re: Totale Anfängerfragen: in den sekundären Prompt wechlsel

Verfasst: Sonntag 6. April 2003, 14:52
von Voges
Willkommen!
Anfänger hat geschrieben:Wie kann ich im interaktiven Modus in den sekundären Prompt (...) wechseln?
Mit einem Backslash am Zeilenende:

Code: Alles auswählen

>>> print \
... "blub"
blub
>>> 
Jan

Verfasst: Sonntag 6. April 2003, 15:25
von Anfänger
:cry: funktioniert bei mir leider nicht:
Nach dem \ fehlen in der nächsten Zeile die drei Punkte und ich bekomme grundsätzlich einen Syntaxerror (auch wenn ich die Punkte von Hand hinmachen)

Ich habe ausserdem sowas gesehen:

Code: Alles auswählen

>>> the_world_is_flat = 1
>>> if the_world_is_flat:
... print "Be careful not to fall off!"
...
Be careful not to fall off!
Da sehe ich kein Backslash.

Verfasst: Sonntag 6. April 2003, 16:03
von Voges
Anfänger hat geschrieben:Nach dem \ fehlen in der nächsten Zeile die drei Punkte und ich bekomme grundsätzlich einen Syntaxerror
Sollte nicht sein. Kannst Du mal die Fehlermeldung posten?
Anfänger hat geschrieben:Ich habe ausserdem sowas gesehen:

Code: Alles auswählen

>>> the_world_is_flat = 1
>>> if the_world_is_flat:
... print "Be careful not to fall off!"
...
Be careful not to fall off!
Nur gesehen oder auch ausprobiert? Denn da müsste wiederrum eine Fehlermeldung kommen, da die print-Zeile nicht eingerückt ist. Richtig:

Code: Alles auswählen

>>> the_world_is_flat = 1
>>> if the_world_is_flat:
...     print "Be careful not to fall off!"
...
Ein Backslash ist hier nicht notwendig, da der Interpreter selbst erkennt, wenn ein Statement oder ein Ausdruck nicht vollständig ist. Mit dem Doppelpunkt wird ein Block eröffnet, der mind. eine eingerückte Zeile enthalten muss. Im interaktiven Modus wird der Block mit einer leeren Zeile beendet.
Andere Beispiele ohne Backslash:

Code: Alles auswählen

>>> myList = [
... 1,
... 2,3,
... 4]
>>> myText = """
... 1. Zeile
... 2. Zeile
... """
>>>
Jan

Verfasst: Sonntag 6. April 2003, 17:11
von Anfänger
:( Peinlicher Fehler

Ich habe einfach den Doppelpunkt hinter der if-Anweisung vergessen.

Jetzt funktionierts! :lol:

(Bei mir scheint der sekundäre Promt keine drei Punkte zu machen, aber das sollte eigentlich egal sein, oder?)

Was den Code angeht: stimmt, kann so nicht funktionieren.

Verfasst: Sonntag 6. April 2003, 17:57
von Voges
Anfänger hat geschrieben:(Bei mir scheint der sekundäre Promt keine drei Punkte zu machen, aber das sollte eigentlich egal sein, oder?)
Ist seltsam, aber tatsächlich egal. Die Default-Einstellung bekommst Du mit

Code: Alles auswählen

import sys
sys.ps2 = '... '
Jan

Verfasst: Montag 7. April 2003, 17:15
von Kartoffel
Ich bins, der Anfänger. Ich hab mich mal registriert, weils so aussieht, als würde ich in Zukunft öfters mal vorbeischaun.
Und da ich hoffe, nicht ewig Anfänger zu bleiben, hab ich mir gleich mal nen neuen Namen zugelegt :wink:

Wo muss ich den Code eingeben, um die Punkte zu bekommen, direkt im Programmfenster? (Wenn ja hab ich ein Problem, funktioniert nämlich nicht!)

Verfasst: Montag 7. April 2003, 18:03
von Voges
"Kartoffel" ist gut ;-)
Kartoffel hat geschrieben:Wo muss ich den Code eingeben, um die Punkte zu bekommen, direkt im Programmfenster? (Wenn ja hab ich ein Problem, funktioniert nämlich nicht!)
Mysteriös. Wie/Wo nutzt Du Python? Also unter welchem Betriebsystem und in welcher Umgebung (IDLE, WinPython, "DOS"-Fenster, Shell, etc.)? Bisher ist mir allerdings noch keine Umgebung untergekommen, wo das nicht funktioniert hat. Im "DOS"-Fentster z.B. müsste das so aussehen:

Code: Alles auswählen

C:\>python
Python 2.2.2 (#37, Oct 14 2002, 17:02:34) [MSC 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.ps2 = "2nd Prompt: "
>>> print \
2nd Prompt: "bla"
bla
>>>
Jan

Verfasst: Montag 7. April 2003, 19:05
von Gast
:D Mir gefällt mein Name auch :D

Ich habe Win 98 und IDLE (Phyton 2.2)

Ist vieleicht auch interresant:
im sek. Prompt wird die Zeile automatisch eingerückt und es ist wirklich garkein Zeichen dass den sek. Prompt markiert (auch kein Leerzeichen, oder sowas) ich kann mit der Rücktaste bis ganz zum Zeilenbeginn (die Promptmarkierung kann ich ja sonst nicht löschen (ICH zumindest nicht))



Können wir das Problem nach mir benennen? ("Kartoffel-Bug" oder so was :twisted: )

Verfasst: Montag 7. April 2003, 19:09
von Kartoffel
Anonymous hat geschrieben::D Mir gefällt mein Name auch :D

Ich habe Win 98 und IDLE (Phyton 2.2)

Ist vieleicht auch interresant:
im sek. Prompt wird die Zeile automatisch eingerückt und es ist wirklich garkein Zeichen dass den sek. Prompt markiert (auch kein Leerzeichen, oder sowas) ich kann mit der Rücktaste bis ganz zum Zeilenbeginn (die Promptmarkierung kann ich ja sonst nicht löschen (ICH zumindest nicht))



Können wir das Problem nach mir benennen? ("Kartoffel-Bug" oder so was :twisted: )
Das war ich :lol:

Verfasst: Montag 7. April 2003, 19:20
von Voges
Hallo!
Anonymous hat geschrieben:Können wir das Problem nach mir benennen? ("Kartoffel-Bug" oder so was :twisted: )
Ich hab mal ein wenig gegoogelt. Das ist kein Bug, sondern ein Feature von IDLE, das sonst irgendwie Probleme bekäme. Ich hab' IDLE irgendwie nie gemocht.
Jan

Verfasst: Dienstag 8. April 2003, 14:18
von ASCII158
IDLE ist eigentlich garbicht soo schlecht, wenn es nur um das testen von Scriptfragmenten geht (also ein Test was tut diese Zeile/wie funktioniert das...) weil es, wenn man den Namen einer Prozedur eingibt die Argumente anzeigt (in einem Tooltip). Fürs entwickeln würde ihcs aber nicht nehmen.

Verfasst: Dienstag 8. April 2003, 15:18
von Kartoffel
Das bedeutet jetzt, es ist normal, dass ich in IDLE keine Punkte sehe?

Verfasst: Dienstag 8. April 2003, 15:56
von Voges
Hallo!
Kartoffel hat geschrieben:Das bedeutet jetzt, es ist normal, dass ich in IDLE keine Punkte sehe?
Richtig. IDLE nutzt sys.ps2 nicht, auch nicht, wenn Du sys.ps2 etwas zuweist.
Jan