Цикл while: больше примеров
Давайте посмотрим на другой пример, использующий цикл while. Следите за комментариями, чтобы узнать идею и решение.
# A program that reads a sequence of numbers
# and counts how many numbers are even and how many are odd.
# The program terminates when zero is entered.
odd_numbers = 0
even_numbers = 0
# Read the first number.
number = int(input("Enter a number or type 0 to stop: "))
# 0 terminates execution.
while number != 0:
# Check if the number is odd.
if number % 2 == 1:
# Increase the odd_numbers counter.
odd_numbers += 1
else:
# Increase the even_numbers counter.
even_numbers += 1
# Read the next number.
number = int(input("Enter a number or type 0 to stop: "))
# Print results.
print("Odd numbers count:", odd_numbers)
print("Even numbers count:", even_numbers)
Некоторые выражения можно упростить без изменения поведения программы.
Попытайтесь вспомнить, как Python интерпретирует истинность условия, и обратите внимание, что эти две формы эквивалентны:
while number != 0: and while number:.
Условие, которое проверяет, является ли число нечетным, также может быть закодировано в этих эквивалентных формах:
if number % 2 == 1: and if number % 2:.
Использование переменной counter для выхода из цикла
Посмотрите на фрагмент кода ниже:
counter = 5
while counter != 0:
print("Inside the loop.", counter)
counter -= 1
print("Outside the loop.", counter)
Этот код предназначен для печати строки "Внутри цикла." и значения, хранящегося в переменной counter, во время данного цикла ровно пять раз. Если условие не выполнено (переменная counter достигла значения 0), цикл завершается и появляется сообщение "Вне цикла.", а также значение, хранящееся в counter, распечатывается.
Но есть одна вещь, которую можно записать более компактно - условие цикла while.
Видите разницу?
counter = 5
while counter:
print("Inside the loop.", counter)
counter -= 1
print("Outside the loop.", counter)
Компактнее, чем раньше? Немного. Более разборчиво? Спорно.
ПОМНИТЕ
Не чувствуйте себя обязанным кодировать свои программы таким образом, чтобы он всегда был самым коротким и компактным. Читаемость может быть более важным фактором. Держите свой код готовым для нового программиста.