Get started learning Python with DataCamp's free Intro to Python tutorial. Learn Data Science by completing interactive coding challenges and watching videos by expert instructors. Start Now!
This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join 11 million other learners and get started learning Python for data science today!
Good news! You can save 25% off your Datacamp annual subscription with the code LEARNPYTHON23ALE25 - Click here to redeem your discount
Циклы
В Python существует два типа циклов: for и while.
Цикл "for"
Циклы for перебирают заданную последовательность. Вот пример:
primes = [2, 3, 5, 7]
for prime in primes:
print(prime)
Циклы for могут перебирать последовательность чисел, используя функции "range" и "xrange". Разница между range и xrange заключается в том, что функция range возвращает новый список с числами из указанного диапазона, тогда как xrange возвращает итератор, что более эффективно. (В Python 3 используется функция range, которая действует как xrange). Обратите внимание, что функция range использует нумерацию, начиная с нуля.
# Выведет числа 0,1,2,3,4
for x in range(5):
print(x)
# Выведет 3,4,5
for x in range(3, 6):
print(x)
# Выведет 3,5,7
for x in range(3, 8, 2):
print(x)
Циклы "while"
Циклы while повторяются до тех пор, пока выполняется определенное условие. Например:
# Выведет 0,1,2,3,4
count = 0
while count < 5:
print(count)
count += 1 # Это то же самое, что count = count + 1
Операторы "break" и "continue"
break используется для выхода из цикла for или while, тогда как continue используется, чтобы пропустить текущий блок и вернуться к оператору "for" или "while". Несколько примеров:
# Выведет 0,1,2,3,4
count = 0
while True:
print(count)
count += 1
if count >= 5:
break
# Выведет только нечетные числа - 1,3,5,7,9
for x in range(10):
# Проверка, является ли x четным
if x % 2 == 0:
continue
print(x)
Можем ли мы использовать "else" в циклах?
В отличие от таких языков, как C, CPP, мы можем использовать else в циклах. Когда условие цикла "for" или "while" не выполняется, то выполняется код в "else". Если в цикле for выполняется оператор break, то часть "else" пропускается. Обратите внимание, что часть "else" выполняется даже при наличии оператора continue.
Вот несколько примеров:
# Выведет 0,1,2,3,4, а затем выведет "count value reached 5"
count=0
while(count<5):
print(count)
count +=1
else:
print("count value reached %d" %(count))
# Выведет 1,2,3,4
for i in range(1, 10):
if(i%5==0):
break
print(i)
else:
print("это не напечатается, потому что цикл for прерван оператором break, но не из-за провала условия")
Упражнение
Пройдитесь и выведите все четные числа из списка numbers в том порядке, в котором они получены. Не выводите числа, после 237 в последовательности.
numbers = [
951, 402, 984, 651, 360, 69, 408, 319, 601, 485, 980, 507, 725, 547, 544,
615, 83, 165, 141, 501, 263, 617, 865, 575, 219, 390, 984, 592, 236, 105, 942, 941,
386, 462, 47, 418, 907, 344, 236, 375, 823, 566, 597, 978, 328, 615, 953, 345,
399, 162, 758, 219, 918, 237, 412, 566, 826, 248, 866, 950, 626, 949, 687, 217,
815, 67, 104, 58, 512, 24, 892, 894, 767, 553, 81, 379, 843, 831, 445, 742, 717,
958, 609, 842, 451, 688, 753, 854, 685, 93, 857, 440, 380, 126, 721, 328, 753, 470,
743, 527
]
# your code goes here
for number in numbers:
numbers = [
951, 402, 984, 651, 360, 69, 408, 319, 601, 485, 980, 507, 725, 547, 544,
615, 83, 165, 141, 501, 263, 617, 865, 575, 219, 390, 984, 592, 236, 105, 942, 941,
386, 462, 47, 418, 907, 344, 236, 375, 823, 566, 597, 978, 328, 615, 953, 345,
399, 162, 758, 219, 918, 237, 412, 566, 826, 248, 866, 950, 626, 949, 687, 217,
815, 67, 104, 58, 512, 24, 892, 894, 767, 553, 81, 379, 843, 831, 445, 742, 717,
958, 609, 842, 451, 688, 753, 854, 685, 93, 857, 440, 380, 126, 721, 328, 753, 470,
743, 527
]
# your code goes here
for number in numbers:
if number == 237:
break
if number % 2 == 1:
continue
print(number)
test_object("number", undefined_msg="Define a object `number` using the code from the tutorial to print just the desired numbers from the exercise description.",incorrect_msg="Your `number` object is not correct, You should use an `if` statement and a `break` statement to accomplish your goal.")
success_msg("Great work!")
This site is generously supported by DataCamp. DataCamp offers online interactive Python Tutorials for Data Science. Join over a million other learners and get started learning Python for data science today!