Я экспериментировал с различными способами создания бесконечного цикла в Python (кроме обычного, в while True
), и пришел к этой идее:
x = {0: None}
for i in x:
del x[i]
x[i+1] = None # Value doesn't matter, so I set it to None
print(i)
На бумаге я проследил, как это будет бесконечно повторяться:
- Я перебираю значение ключа в словаре
- Я удаляю эту запись.
- Текущей позицией счетчика в цикле
+ 1
будет новый ключ со значениемNone
который обновляет словарь. - Я вывожу текущий счетчик.
Это, на мой взгляд, должно выводить натуральные числа в виде бесконечного цикла:
0
1
2
3
4
5
.
.
.
Я думал, что эта идея была умной, но когда я запускаю ее на Python 3.6, она выдает:
0
1
2
3
4
Да, это как-то остановилось после 5 итераций. Ясно, что в блоке кода цикла нет базового условия или значения часового значения, так почему же Python выполняет этот код только 5 раз?