#python #python-3.x #syntax
#python #python-3.x #синтаксис
Вопрос:
Я получаю синтаксическую ошибку в этой конкретной строке.
print "Sense %i:" %(i),
Полный код:
for i in range(len(meas)):
p = sense(p, meas[i])
r = [format(j,'.3f') for j in p]
print "Sense %i:" % (i),
print r,
entropy(p)
p = move(p, mov[i])
r = [format(j,'.3f') for j in p]
print "Move %i:" % (i),
print r,
entropy(p)
print
Комментарии:
1. Какую версию Python вы используете? Если это Python 3, ваш код должен выглядеть так:
print("Sense %i:" % (i), end="")
.2. Когда я пытаюсь внести изменения в код, я получаю ошибку в следующей строке
3. В этом случае вам может не хватать закрывающих круглых скобок в строке перед этим.
4. для i в диапазоне (len(meas)): p = смысл (p, meas[i]) r = [формат (j,’.3f’) для j в p] выведите «Смысл %i:»%(i), выведите r, энтропия (p) p =переместить (p, mov[i]) r = [формат (j,’.3f’) для j в p] вывести «Переместить %i:»%(i), распечатать r, энтропия (p) печать
5. Что это за сообщение об ошибке? Опубликуйте полную трассировку стека.
Ответ №1:
Несколько вещей:
- В Python 3
print
это функция, а не оператор, как в Python 2. Итак, вам нужно добавить круглые скобки для вызова функции, %
оператор, используемый для форматирования строк, устарел. В Python 3 вы должны использоватьformat
метод (илиformat
функцию),%
оператор обычно принимает atuple
в качестве второго параметра: выражение «(i)» является не atuple
, а константой. В Python синглтонtuple
имеет завершающую запятую, подобную этой: «(i,)».- используйте аргумент ключевого
end=""
слова для замены новой строки пустой строкой (но я не уверен, что это то, что вы хотите)
Итак, вы можете заменить свой код на:
print("Sense {}:".format(i), end="")
РЕДАКТИРОВАТЬ: добавить код из комментария
Ваш код должен быть преобразован в Python 3, как показано ниже:
for i in range(len(meas)):
p = sense(p, meas[i])
r = [format(j,'.3f') for j in p]
print("Sense {0}:".format(i), end="")
print(r, end="")
entropy(p)
p = move(p, mov[i])
r = [format(j,'.3f') for j in p]
print("Move {0}:".format(i), end="")
print(r, end="")
entropy(p)
print()
Комментарии:
1. для i в диапазоне (len(meas)): p = смысл (p, meas[i]) r = [формат (j,’.3f’) для j в p] выведите «Смысл %i:»%(i), выведите r, энтропия (p) p =переместить (p, mov[i]) r = [формат (j,’.3f’) для j в p] вывести «Переместить %i:»%(i), распечатать r, энтропия (p) печать
2. Большое спасибо!!! теперь все работает отлично… На самом деле я просто новичок в программировании на Python. Я хотел бы знать, можете ли вы помочь мне с другими кодами. Еще раз спасибо.
Ответ №2:
Попробуйте это:
print ("Sense %s:" %i)
Будет работать просто отлично
Ответ №3:
В python 3 print — это функция, вы должны использовать скобки: print("Sense %i:" %(i))
Комментарии:
1. print («Смысл %i:»%(i)) print r, энтропия(p) p = переместить(p, mov[i]) r = [формат (j,’.3f’) для j в p] print «Переместить %i:»%(i),выведите r, энтропия (p)