В этих случаях они работают по-разному.
В цикле for variable in iterable
установит variable
для каждого элемента iterable
.В вашем случае n
будет равно 0, чем 1, чем 2 ..., чем 9.
Во втором случае, без цикла, in
проверяет, является ли variable
вiterable
.Так что в вашем случае он будет проверять, есть ли 5 в итераторе 0-1-2-...-9
.
Давайте изменим ваш код с помощью отпечатков:
def a():
for n in range(10):
print(n)
if n == 5:
return True
return False
a()
print()
print(5 in range(10))
Будет напечатано:
0
1
2
3
4
5
True
Таким образом, в первом случае вы устанавливаете n
последовательно на 0-9.Во втором случае вы просто проверяете 5
в 0-9
.