Если вы не видите никакого результата из вашего кода PHP и / или видите части своего литерального исходного кода PHP на веб-странице вы можете быть уверены, что ваш PHP на самом деле не выполняется. Если вы используете View Source в своем браузере, вы, вероятно, видите весь исходный код PHP-файла. Поскольку PHP-код встроен в теги , браузер попытается интерпретировать их как HTML-теги, и результат может выглядеть несколько смущенным.
Чтобы на самом деле запустить ваши PHP-скрипты, вам нужно:
* Если вы не переконфигурируете его, все может быть настроено.
Это последнее особенно важно. Двойной щелчок по файлу, скорее всего, откроет его в вашем браузере, используя такой адрес, как:
file://C:/path/to/my/file.php
Это полностью обходит любой веб-сервер, который у вас может быть запущен, и файл не интерпретируется. Вам нужно посетить URL-адрес файла на вашем веб-сервере, вероятно, что-то вроде:
http://localhost/my/file.php
Вы также можете проверить, используете ли вы короткие открытые теги вместо
и ваша PHP-конфигурация отключила короткие открытые теги.
Также см. PHP-код не выполняется, вместо этого код отображается на странице
Hmmm. Был ответ с пониманием списка здесь, но он исчез.
Здесь:
[i for i,x in enumerate(testlist) if x == 1]
Пример:
>>> testlist
[1, 2, 3, 5, 3, 1, 2, 1, 6]
>>> [i for i,x in enumerate(testlist) if x == 1]
[0, 5, 7]
Обновление:
Хорошо, Вы хотите выражение генератора, у нас будет выражение генератора. Вот понимание списка снова, в для цикла:
>>> for i in [i for i,x in enumerate(testlist) if x == 1]:
... print i
...
0
5
7
Теперь мы создадим генератор...
>>> (i for i,x in enumerate(testlist) if x == 1)
<generator object at 0x6b508>
>>> for i in (i for i,x in enumerate(testlist) if x == 1):
... print i
...
0
5
7
и достаточно изящно, мы можем присвоить это переменной и использовать ее оттуда...
>>> gen = (i for i,x in enumerate(testlist) if x == 1)
>>> for i in gen: print i
...
0
5
7
И думать я раньше писал ФОРТРАН.
for i in xrange(len(testlist)):
if testlist[i] == 1:
print i
xrange вместо диапазона согласно просьбе (см. комментарии).
Использование перечисляет:
testlist = [1,2,3,5,3,1,2,1,6]
for position, item in enumerate(testlist):
if item == 1:
print position
Если Ваш список стал достаточно большим, и Вы только ожидали находить значение в редком количестве индексов, полагать, что этот код мог выполняться намного быстрее, потому что Вы не должны выполнять итерации каждого значения в списке.
lookingFor = 1
i = 0
index = 0
try:
while i < len(testlist):
index = testlist.index(lookingFor,i)
i = index + 1
print index
except ValueError: #testlist.index() cannot find lookingFor
pass
, Если Вы ожидаете находить значение много, необходимо, вероятно, просто добавить "индекс" к списку и распечатать список в конце, чтобы сэкономить время на повторение.
testlist = [1,2,3,5,3,1,2,1,6]
for id, value in enumerate(testlist):
if id == 1:
print testlist[id]
Думаю, это именно то, что вам нужно. ;-) «id» всегда будет индексом значений в списке.