2011-12-19 3 views
0

новичок в Python, в настоящее время читает diveintopython и пытается запустить следующий код из книги:python If statement Синтаксическая ошибка?

def buildConnectionString(params): 
    """Build a connection string from a dictionary of parameters. 

     Returns string.""" 
     return ";".join(["%s=%s" % (k, v) for k, v in params.items()]) 
if __name__ == "__main__": 
     myParams = {"server":"mpilgrim", \ 
        "database":"master", \ 
        "uid":"sa", \ 
        "pwd":"secret" \ 
        } 
    print buildConnectionString(myParams) 

Теперь, когда я ударил войти, Python оболочка говорит if оператор имеет синтаксическую ошибку ?? Я запускаю Python 2.7.

+4

Добро пожаловать в StackOverflow. публикация (полная и точная) ошибка, которую вы получите, позволит людям быстрее помочь вам :) – MByD

+0

Вы уверены, что не смешиваете вкладки и пробелы? –

+0

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

ответ

0

Похоже, что уровни отступов неверны. Глядя на ваш вставленный код, я бы предположил, что вы смешиваете вкладки и пробелы, поэтому вы используете «плохой» редактор. Используйте редактор, который заменяет вкладки пробелами.

3

Сам код работает (я просто попробовал). Возможной причиной ошибок является непоследовательный отступ. Кажется, что ваши строки начинаются с разного количества пробелов (или вкладок). Попробуйте изменить пустое пространство в начале каждой отступаемой строки, скажем, на четыре пробела, и попробуйте запустить сценарий еще раз.

+0

, в какой среде вы используете код? жаль, что я новичок и потерян, что люди говорят мне, чтобы я не вводил код в оболочку? где я должен тогда закодировать? –

+0

Программист @Apprentice: Я обычно использую Python IDLE или Geany. – Sonya

2

Ошибка в строке 5: return следует отступом на уровне открытия """ функции.

Однако вы не должны вводить этот код в оболочку - сделайте это в текстовом редакторе.

Смежные вопросы