Module (23%)
Section (12%)

Цикл 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)

Компактнее, чем раньше? Немного. Более разборчиво? Спорно.

ПОМНИТЕ

Не чувствуйте себя обязанным кодировать свои программы таким образом, чтобы он всегда был самым коротким и компактным. Читаемость может быть более важным фактором. Держите свой код готовым для нового программиста.


Code

{{ dockerServerErrorMsg }} ×
{{ errorMsg }} ×
{{ successMsg }} ×