'{0[n]}...'
является строкой, которая интерпретируется методом format()
. Синтаксический анализатор Python не заботится о содержимом этой строки, и format
может использовать любую нотацию, независимо от того, что допустимо в Python, а что нет.
O[n]
это не строка, это выражение Python. Когда Python анализирует его, он пытается преобразовать n
в переменную, которая, в вашем случае, не существует. Ваша попытка сработает, если вы выполните n='n'
перед поиском.
Сообщение людям добавить <SCRIPT>
только в голове звуки как разумная вещь сделать, но поскольку другие сказали, что существует много причин, почему это не рекомендуется или даже практичное - главным образом скорость и способ, которым страницы HTML сгенерированы динамично.
Это - то, что спецификация HTML 4 говорит :
элемент СЦЕНАРИЯ помещает сценарий в рамках документа. Этот элемент может появиться любое количество раз в ГОЛОВЕ или ТЕЛЕ документа HTML.
И некоторый демонстрационный HTML. Не делает это выглядит симпатичным все отформатированные здесь :)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<HTML>
<HEAD>
<TITLE>A document with SCRIPT</TITLE>
<META http-equiv="Content-Script-Type" content="text/tcl">
<SCRIPT type="text/vbscript" src="http://someplace.com/progs/vbcalc">
</SCRIPT>
</HEAD>
<BODY>
<SCRIPT type="text/javascript">
...some JavaScript...
</SCRIPT>
</BODY>
</HTML>
И что-то для нетерпеливого ожидания в HTML 5 :
Новый асинхронный атрибут в <SCRIPT>
:
Примечание: существуют пути [так], сценарий может быть выполнен:
асинхронный атрибут "верен": сценарий будет выполняться asynchrously с остальной частью страницы, таким образом, сценарий будет выполняться, в то время как страница продолжает парсинг.
асинхронный атрибут является "ложью", но задержать атрибут "верен": сценарий будет выполняться, когда страница будет закончена с парсингом.
Нормальные правила игры все еще стоят; не используйте материал, прежде чем он будет определен. :)
кроме того, обратите внимание, что 'помещенный все в нижней части' совет не только правило в книге - в некоторых случаях это не может быть выполнимо, и в других случаях может иметь больше смысла помещать сценарий в другом месте.
главная причина для помещения сценария в нижней части документа для производительности, сценарии, в отличие от других Запросов HTTP, не загружаются параллельно, означая, что они замедлят загрузку остальной части Вашей страницы. Другая причина помещения сценариев внизу так, Вы не должны использовать никого 'DOM готовые' функции. Так как тег script ниже всех элементов, DOM будет готов к управлению!
РЕДАКТИРОВАНИЕ: Чтение это: http://developer.yahoo.com/performance/rules.html#js_bottom
Это не делает. Большая часть платформы программирования рассеивает сценарии все всюду по странице. Я только редко видел проблемы из-за этого (и только от более старых браузеров).
Одним из аспектов размещения является производительность. См. эта прекрасная статья в рамках обсуждения YSlow для того, почему это иногда рекомендовало поместить их в нижней части документа.
Что касается проблем объема, обычные правила видимости для JavaScript (Вар определил внутри или снаружи функций, локальных, глобальных, закрытия, и т.д.) не затронуты, насколько я знаю.
Если Ваш сценарий обращается к идентификатору на странице, и страница не была представлена (т.е. сценарий перед HTML, или Ваш сценарий выполняется с onload, скорее затем DOM готов), можно также получить ошибку.
Если у Вас есть встроенный сценарий (вне функций) расположенный перед функциями, он может звонить, можно получить ошибку, потому что они еще не могут быть не доступными. Не поговорка его всегда гласит произойти, просто что он май в зависимости от типа браузера или версии.
Правила обзора данных JavaScript подобны жемчугу - можно вызвать любую функцию в токе или любой более высокий уровень объема. Единственное ограничение - то, что функция должна быть определена в то время, когда Вы называете ее. Положение в источнике не важно - только положение в вопросах времени.
необходимо постараться не помещать сценарии в <head>
, если это возможно, поскольку это замедляет отображение страницы (см. ссылку отправленный Alan).