python - синтаксическая ошибка - PullRequest
0 голосов
/ 20 февраля 2010

Привет :) Я не могу понять, в чем ошибка в программе, не могли бы вы помочь мне с этим. Спасибо ..:)

Входной файл содержит следующее:

3.  भारत का इतिहास काफी समृद्ध एवं विस्तृत है।
57. जैसे आज के झारखंड प्रदेश से, उन दिनों, बहुत से लोग चाय बागानों में मजदूरी करने के उद्देश्य से असम आए।

(это в основном примеры предложений, для которых мне нужно получить позиции слов в выходных данных, добавленных к каждому слову на хинди)

например, вывод для первого предложения будет выглядеть так:

3.  भारत(1) का(2) इतिहास(3) काफी(4) समृद्ध(5) एवं(6) विस्तृत(7) है(8) ।(9)

Я должен получить похожую операцию для следующего предложения (й)

Код выглядит так:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
# encoding: utf-8
separators = [u'।', ',', '.']
text = open("hinstest1.txt").read()
#This converts the encoded text to an internal unicode object, where
# all characters are properly recognized as an entity:
text = text.decode("UTF-8")
#this breaks the text on the white spaces, yielding a list of words:
words = text.split()

counter = 1

output = ""
#if the last char is a separator, and is joined to the word:
for word in words:
    if word[-1] in separators and len(word) > 1:
        #word up to the second to last char:
        output += word[:-1] + u'(%d) ' % counter
        counter += 1
        #last char
        output += word[-1] +  u'(%d) ' % counter
    else:
        output += word + u'(%d) ' % counter
        counter += 1

    print output

Я получаю ошибку:

  File "pyth_hinwp.py", line 22
    output += word[-1] +  u'(%d) ' % counter
                         ^
SyntaxError: invalid syntax

Я знаю, что этот вопрос чем-то похож на тот, что я задавал ранее, но, поскольку я не могу успешно выполнить некоторые из ответов, которые были даны мне ранее, следовательно, я как бы перестраиваю вопрос в то место, где я застрял .

Ответы [ 2 ]

3 голосов
/ 20 февраля 2010

То, что размещено здесь, не имеет ошибки. Обратите внимание, что то, что публикуется, имеет два пробела между + и u в output += word[-1] + u'(%d) ' % counter. Вероятно, происходит то, что у вас есть пробел, кроме пробела. Возможность - NBSP (U + 00A0) или «пространство без перерывов». То, что SO делает для форматирования вашего кода, скорее всего, удалит такие вещи.

Диагноз: В интерактивном окне Python введите

open("pyth_hinwp.py").readlines()[22-1]

Что вы видите между + и u?

Исправлено: в вашем редакторе удалите оба символа между + и u. Вставьте один пробел.

Кстати, с синтаксической ошибкой проблема полностью в названном файле SOURCE; код не был запущен (потому что он не может быть скомпилирован) и поэтому то, что находится в вашем файле INPUT, не имеет отношения к проблеме.

0 голосов
/ 20 февраля 2010

Если у вас есть синтаксическая ошибка, возможно, ваш редактор показывает ее еще до запуска? В любом случае, почему бы вам не попробовать удалить этот символ, где указана ошибка, потому что я не могу воспроизвести проблему после копирования вашего кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...