[Python] e = lp.parse(r'\x.(walk(x) & chew_gum(x))') -> ValueError: invalid \x escape

Valerio Maggio valerio.maggio a gmail.com
Mar 14 Gen 2014 10:13:08 CET


On 14 Jan 2014, at 09:56, Marco Ippolito <ippolito.marco a gmail.com> wrote:

> Ciao a tutti,
> seguendo le indicazioni trovate qui: http://nltk.org/book/ch10
> 
> ho scritto le seguenti righe di codice:
> lp = nltk.LogicParser()
> e = lp.parse(r'\x.(walk(x) & chew_gum(x))')
> print
> 
> output: ValueError: invalid \x escape

Ciao Marco.

Ho provato a replicare il tuo codice senza ottenere alcun errore.
L'ho provato per scongiurare un possibile errore di implementazione in LogicParser (non si sa mai).

L'unico caso che può provocare il tuo errore è che tu non faccia attenzione ad anteporre la `r` davanti la stringa in questione
( r —> "raw string" - i.e., nessun escape dei caratteri "speciali" è richiesto).

Al contrario, senza l'uso di "raw string",  l'escape di caratteri come `\` è sempre necessario (vale a dire: `\\x` nel tuo esempio).
Inutile sottolineare che la via di "raw string" è la più pulita.

--
valerio




Maggiori informazioni sulla lista Python