2010-08-24 13 views

Odpowiedz

107

Nie wstawiasz " przed końcem linii.

Zastosowanie """ jeśli chcesz to zrobić:

""" a very long string ...... 
....that can span multiple lines 
""" 
+7

Używając tylko trzech cudzysłowów, miałem cztery przypadki i pojawił się błąd. – Oregano

+0

Co ze złączonymi łańcuchami i zmiennymi? –

12

(Zakładając, że nie masz/chcesz podziały wiersza w Twojej ciąg ...)

Jak długi jest ten ciąg naprawdę?

Podejrzewam istnieje granica tego, jak długo linia odczytać z pliku lub z linii poleceń może być, i dlatego, że koniec linii dostaje choped off parser widzi coś podobnego s1="some very long string.......... (bez kończącego "), a tym samym zgłasza błąd parsowania?

Można podzielić długie linie w wielu liniach uciekając linebreaks w źródle tak:

s1="some very long string.....\ 
...\ 
...." 
50

miałem tego problemu - w końcu zorientują się, że powodem było to, że ja zawarte \ znaki ciąg znaków. Jeśli masz któryś z nich, "uciec" je z \\ i powinien działać dobrze.

+4

Ten problem pojawia się często. Co więcej, zależy to od tego, jaki system operacyjny OS rozwijasz. Slash i anti-slash są różne dla Windowsa i Unixa –

+0

wow nie widziały tego, co słychać w \ w napisach dla pythona, potem – Leo

+0

. Dla problemu slash vs anti-slash możesz użyć os.name, aby określić, który system operacyjny jest uruchomiony kod na następnie użyj instrukcji if, aby ustawić odpowiedni znak. – jmdeamer

1

miałem też dokładnie ten komunikat o błędzie, dla mnie problem został rozwiązany przez dodanie „\”

Okazuje się, że mój długi łańcuch, podzielone na około osiem linii z „\” na samym końcu, brakowało "\" w jednej linii.

Python IDLE nie określił numeru wiersza, w którym ten błąd był włączony, ale podświetlono na czerwono poprawne polecenie przypisania zmiennej, wyrzucając mnie. Rzeczywiste zniekształcone wyrażenie (długie linie z "\") sąsiadowały z podświetlaną instrukcją. Może to pomoże komuś innemu.

2

ja też miałem ten problem, choć nie było odpowiedzi tutaj chcę ważny punkt do tego po / nie powinno być puste spaces.Be świadomy

3

W mojej sytuacji, miałem \r\n w moje jedno-cytowane ciągi słowników. Zastąpiłem wszystkie instancje \r z \\r i \n z \\n i to naprawiło mój problem, poprawnie zwracając zerwane znaki linii w eval'ed dict.

ast.literal_eval(my_str.replace('\r','\\r').replace('\n','\\n')) 
    ..... 
1

Miałem podobny problem. Miałem ciąg zawierający ścieżkę do folderu w systemie Windows, na przykład C:\Users\ Problem polega na tym, że \ jest znakiem escape, więc aby użyć go w łańcuchach, musisz dodać jeszcze jeden \.

Niepoprawnie: C:\Users\

Poprawnie: C:\\\Users\\\

0

W moim przypadku korzystania z systemu Windows, więc muszę używać cudzysłowów zamiast pojedynczej.

C:\Users\Dr. Printer>python -mtimeit -s"a = 0" 
100000000 loops, best of 3: 0.011 usec per loop 
1

Otrzymałem ten błąd w funkcji postgresql. Miałem długi SQL, który łamałem na wiele wierszy z \ dla lepszej czytelności. Jednak to był problem. Usunąłem wszystkie i zrobiłem je w jednym wierszu, aby naprawić problem. Używałem pgadmin III.

Powiązane problemy