[Python-de] raw_input

Gregor Lingl glingl at aon.at
Thu Oct 3 15:18:17 EDT 2002


Hallo Leute!

Ich bitte, mir bei dem folgenden Problem behilflich zu sein:

Ich bin gerade dabei, einen Buchtext für ein Buch "Python für Kids"
fertig zu stellen.

Ich möchte wissen, was ich den Kids sagen soll, wenn sie in der IDLE
auf folgendes Problem stoßen:

Python 2.2.1 (#34, Apr  9 2002, 19:34:33) [MSC 32 bit (Intel)] on win32
Type "copyright", "credits" or "license" for more information.
IDLE 0.8 -- press F1 for help
 >>> name = raw_input("Wie heißt du? ")
Wie heißt du? Clärchen
Traceback (most recent call last):
  File "<pyshell#0>", line 1, in ?
    name = raw_input("Wie heißt du? ")
TypeError: object.readline() returned non-string
 >>>

Gesucht ist eine leicht verständliche und leicht auszuführende Lösung
des Problems.

Was sagt ihr zu der Idee, die Funktion raw_input mit

def raw_input(prompt):
    from sys import stdin, stdout
    stdout.wirte(prompt)
    return stdin.readline()

zu überschreiben.

Handelt man sich dadurch irgendwelche wesentlichen Nachteile ein?

Wenn nicht, könnte man die Funktion in ein Modul p4k.py schreiben,
dieses in den Pfad kopieren lassen und die Kids auffordern, mit

from p4k import raw_input

zu arbeiten.

Besser wären natürlich einer der beiden folgenden Wege:

1) Ersetzen der IDLE-Module, die den Fehler verursachen, durch gepatchte.
Doch gibt es solche? Welche sind das? Wo findet man sie?
oder

2) Automatisches Laden der neuen raw_input-Funktion in die IDLE
beim Start.
Doch wie macht man das?

Was ratet ihr? Alles ist besser, als kommentarlos zu übergehen, dass
raw_input in der IDLE normale deutsche Sätze nicht verträgt.

Schöne Grüße, Gregor

















More information about the Python-de mailing list