2016-07-12 7 views
4

In der Python-2.7-Konsole sowie ipython 4, konnte ich fügen Sie diesen String in eine Variable einzufügen:String nicht wie so in der neuen ipython 5,0

In [2]: c = 'ÙjÌÉñõµÏ“JÖq´ž#»&•¼²nËòQZ<_' 

Anschließend konnte ich tippe:

In [3]: print(c) und es würde ÙjÌÉñõµÏ“JÖq´ž#»&•¼²nËòQZ<_

jedoch zurückkehren, in ipython 5.0, bekomme ich folgende Fehlermeldung:

In [4]: c = 'ÙjÌÉñõµ^LÏ“JÖq´ž#»&•¼²nËòQZ<_' 
    File "<ipython-input-4-9bf9f2fa5210>", line 1 
    c = 'ÙjÌÉñõµ 

^ 
SyntaxError: EOL while scanning string literal 

Auch %paste gibt einen Fehler zurück:

ÙjÌÉñõµ 
    ^
SyntaxError: invalid syntax 

Was 4 bis 5 in ipython geändert, und warum dies geschieht? Etwas damit zu tun, dass die Zeichenkette keinen Anführungszeichen enthält?

+0

Wenn Sie '^ L' in' \^L' ändern, wird es akzeptiert, aber diese Sequenz fehlt in 'c'. Es ist, als ob der neue 'readline' Code das'^L' als Steuerzeichen interpretiert. Es sollte nicht. – hpaulj

+0

Was ist die Quelle dieser Zeichenfolge? Wie viele Charaktere? Was soll es darstellen? – hpaulj

+0

32 Zeichen. Es ist der Chiffretext von DES-Verschlüsselung auf einem bestimmten Klartext und Schlüssel und iv. – intdt

Antwort

1

http://blog.jupyter.org/2016/07/08/ipython-5-0-released/

Ipython5 ersetzt die Standard-readline mit einem neuen prompt_toolkit.

Es sieht aus wie Ihre Zeichenfolge mehrere Zeichen hat, die die alte readline ignoriert, aber die neue sieht. Der erste tritt unmittelbar nach der µ auf. Ich sehe es nicht in den SO-Fenstern, aber ich kann es fühlen, wenn ich den Cursor über die Linie bewege. Ich kann auch etwas sehen, wenn ich die Linie in einen Editor einfüge. Aber ich kenne mich mit Rohtext-Tools nicht aus, um mehr zu sehen.

Wenn ich Ihre Zeichenfolge in eine einfache Python-Shell einfügen, bekomme ich eine Glocke und der Bildschirm wird gelöscht. So hat selbst der normale readline Probleme mit dieser Zeichenfolge.

Ich habe '|' hinzugefügt waren nicht druckbare Zeichen vorhanden

Verwandte Themen