2014-11-27 3 views
-2

я написал:Ошибка синтаксиса: EOL во время сканирования строки буквального

def compute_bill(food): 
    total = 0 
    while item in food: 
     if item's stock count > 0: 
     total += prices[item] 
     item's stock count = item's stock count - 1 

тогда, я получил ошибку синтаксиса: EOL во время сканирования строки буквального Может кто-нибудь помочь мне, пожалуйста!

+0

Пожалуйста, поместите фактический код в хороший формат (т. Е. Поместите 4 пробела перед каждой строкой кода) – grasshopper

ответ

1

' начинает строку, и вы использовали ее в трех местах. Это приводит к двум строкам: одному, у которого есть апостроф в начале и в конце и незакрытый. Незакрытый вызывает EOL error, потому что интерпретатор python исчерпывает код для проверки до завершения строки.

Чтобы это исправить, не используйте apostrophies (или пробелы) в ваших имен переменных:

def compute_bill(food): 
    total = 0 
    while item in food: 
     if item_stock_count > 0: 
      total += prices[item] 
      item_stock_count = item_stock_count - 1 
+0

Вам нужно будет инициализировать 'item_stock_count', и вам не хватит отступа для строки после' if'. – Matthias

+0

Элемент 'item_stock_count' не инициализируется в примере. –

+0

И это ошибка. – Matthias

0

Похоже item's stock count имя переменной. Но в Python или я думаю, что большинство/все имена переменных переменных cannot be space separated и не должны содержать одиночную кавычку ' или двойную справку " и многое другое.

0

Ваш «запас количества элемента» является переменной и переменной Python должны соблюдать некоторые правила (см here):

  • должны начинаться с буквы (прописные или строчные буквы) или подчеркивание (_)
  • следующие символы могут быть буквами, цифрами или символом подчеркивания

Таким образом, пробелы или кавычки не допускаются; они интерпретируются как нечто другое, а не имя переменной. Отсюда и ошибка.

См. Также this question.

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