В Пайтоне цикл for
- специальный синтаксис, чтобы действовать с iteradores.
, Когда tГє ты делаешь:
for e in iterable:
codigo
BГЎsicamente происходит следующее:
iter(iterable)
на iterable, который ты определил вслед за словом in
. Это предоставляет ему то, что называются iterador , который является типом объекта, на котором возможно делать next()
, чтобы получать следующий элемент. next()
на iterador, полученном в 1. StopIteration
, состоит в том, что нет элементов на которых повторять, а следовательно он выходит из цикла. for
дается из-за законченного next()
распределяется в переменную e
, которые ты поместил бы перед словом in
. codigo
, которые были в теле for
. Этот cГіdigo может использовать переменную e
, чтобы соглашаться на элемент, на котором estГЎ повторяя codigo
, возвращается в шаг 2. Следовательно, в фоне цикл for
- секретная форма цикла while
, которые в частности serГ - в следующего:
iterable_tmp = iter(iterador)
while True:
try:
e = next(iterable_tmp)
except StopIteration:
break # Salir del bucle
codigo
Следовательно любая вещь, которую ты мог бы делать в codigo
этого while
, ты можешь делать это tambiГ©n в одном for
.
Например давайте предполагать, что мы хотим смотреть, если данный список содержит или нет некую информацию:
lista = [1, 2, 50, 10, 3]
dato = 10
harГ - в в следующей форме:
encontrado = False
for elemento in lista:
if elemento == dato:
encontrado = True
break
, Когда True
заканчивает этот цикл, переменную encontrado
serГЎ, если информация encontrГі, или False
, если нет.
Циклы for использованы для циклов, что уже estГЎ определенный nГєmero повторений, и циклы while подают лучше для циклов, где nГєmero повторений он может меняться в зависимости от двух факторов:
Из стоимости, что “comparan” начальным способом, когда могут состоять в том, чтобы, ввиду condiciГіn не умудрились выполнить
Операции, которые осуществляются внутри того же цикла.
И на твоем другом вопросе, segГєn, который ты нуждался в том, чтобы искать и во что область (файлы, arrays, и т.д.) ты мог бы или нет использовать это, так как могли бы существовать лучшие альтернативы или методы, уже созданные для этого типа проблемы.
Надеялся, что я позволяю себе понимать ;) Привет