2016-01-23 6 views
-3

Это говорит о синтаксической ошибке в моем коде, вот новый кусок, который я недавно добавил, который должен иметь ошибку где-то. Я новичок в python, любая помощь очень ценится. Возможно, что-то с отступом, но я не могу видеть, где и она не определяет линию :(Сообщение об ошибке синтаксиса, на python idle

def store_results(class_number, name, score): 
    class_number = str(class_number) + ".txt" #this adds '.txt' to the end of the file (therefore creating a text file) so it can be used to create a file under the name of the class 
    file = open(class_number, 'a') #opens the file in 'append' mode so you don't delete all the information 
    #file.write(str(students_names)) 
    file.write(str(name + " : ")) #writes the name and ":" to file 
    file.write(str(score)) #writes the score to file 
    file.write('\n')#writes the score to the file 
    file.close()#safely closes the file to save the information 

def store_results(class_number, name, score): 
    class_file = "{}.txt".format(class_number) # this adds '.txt' to the end of the file (therefore creating a text file) so it can be used to create a file under the name of the class 
    with open(class_file, 'a') as f: # opens the file in 'append' mode so you don't delete all the information 
     f.write("{}: {}\n".format(name, score) 

def store_results(class_number, name, score): # this adds '.json' to the end of the file (therefore creating a json file) 
    class_file = "{}.json".format(class_number) # first step: load the existing data 
    if not os.path.exists(class_file): 
     scores = {} 
    else: 
     with open(class_file, 'r') as f: 
     scores = json.load(f) 
     scores.setdefault(name, []).append(score) 
     with open(class_file, 'w') as f: 
     json.dump(scores, f) 

сообщение об ошибке просто говорит:

**SYNTAX ERROR: INVALID SYNTAX** 

Однако курсор перескакивает назад к этой линии

def store_results(class_number, name, score): 
+2

Всегда публиковать полное сообщение об ошибке. Сделайте это как можно проще для нас, чтобы помочь вам, и вы получите точные ответы быстрее. – timgeb

+0

Хорошо, спасибо, я отредактировал его с ошибкой –

+1

добавить полное сообщение об ошибке (с номером строки и т. Д.) – furas

ответ

0

Ваша проблема заключается в том, как вы используете формат, у вас есть:

f.write("{0}: {1}\n".format(name, score) 

Вы являетесь миссией закрывающей круглой скобки.

f.write("{0}: {1}\n".format(name, score)) 

Это исправляет проблему, и код проходит через переводчика в порядке. Я бы предложил использовать IDE, а не простой простаивать, дать больше информации о проблеме и о том, какая линия происходит, хотя простаивал и вам.

+0

СПАСИБО! Это была ошибка, а также несколько других, которые мне удалось исправить, поскольку ошибка была более конкретной. Я соглашусь на ответ, когда он мне позвонит (он говорит, что ответы были слишком скоро) –

0

Это не решает проблему, но у вас есть другая синтаксическая ошибка в строке 20:

else: 
    with open(class_file, 'r') as f: 

Там в нежелательное место до 'с'

EDIT: Вот полная синтаксическая ошибка:

File "check_syntax.py", line 15 
def store_results(class_number, name, score): 
^

SyntaxError: недопустимый синтаксис

+0

Спасибо, но я не знаю понять, что не так с этой линией? –

+0

Отступы действительно важны в python, есть часть, описывающая это в стандарте (PEP8): https://www.python.org/dev/peps/pep-0008/#tabs -или-пробелы Если у вас смешанный отступ, например, 3 пробела и 4 пробела в том же отступном блоке python выдает ошибку, это рекомендации: - использовать пробелы над вкладками - не смешивать вкладки и пробелы - использовать 4 пробела для отступа Большинство редакторов позволяют менять привязки вкладок с пробелами. –

-1

Я думаю, проблема в том, что у вас есть три функции с тем же именем - это ошибка syntaxt.

+0

Нет, это не так, потому что pyhton simple переопределяет символ, обозначенный alredy, в этом случае будет вызываться последний определенный. –

+0

Нет, это не так - это просто перетаскивает локальное имя на вновь созданную функцию. Плохая практика? Да. Ошибка синтаксиса? Неа. –

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