124
Глава 7 •
Ввод данных и циклы while
Ввод данных в Python 2 .7
Если вы работаете с Python 2.7, для запроса данных у пользователя следует ис-
пользовать функцию
raw_input()
. Эта функция интерпретирует весь ввод как
строку — точно так же,
как функция
input()
в Python 3.
В Python 2.7 также есть функция
input()
, но эта функция интерпретирует пользо-
вательский ввод как код Python и пытается выполнить его. В лучшем случае Python
не сможет интерпретировать введенные данные, и вы получите сообщение об ошиб-
ке; в худшем случае будет выполнен код, который вы выполнять не собирались.
Итак, в Python 2.7 вместо функции
input()
используется функция
raw_input()
.
УПРАЖНЕНИЯ
7-1 . Прокат машин: напишите программу, которая спрашивает у пользователя, какую ма-
шину он хотел бы взять напрокат . Выведите сообщение с введенными данными (например,
“Let me see if I can find you a Subaru”) .
7-2 . Заказ стола: напишите программу, которая
спрашивает у пользователя, на сколько
мест он хочет забронировать стол в ресторане . Если введенное число больше 8, выведите
сообщение о том, что пользователю придется подождать . В противном случае сообщите,
что стол готов .
7-3 . Числа, кратные 10: запросите у пользователя число и сообщите, кратно оно 10 или нет .
Циклы while
Цикл
for
получает коллекцию элементов и выполняет блок кода по одному разу
для каждого элемента в коллекции. В отличие от него, цикл
while
продолжает вы-
полняться, пока остается истинным некоторое условие.
Цикл
while в действии
Цикл
while
может использоваться для перебора числовой последовательности.
Например, следующий цикл считает от 1 до 5:
counting.py
current_number = 1
while current_number <= 5:
print(current_number)
current_number += 1
В первой строке отсчет начинается с 1, для чего
current_number
присваивается
значение 1. Далее запускается цикл
while
, который продолжает работать, пока
значение
current_number
остается меньшим или равным 5. Код в цикле выводит
значение
current_number
и увеличивает его на 1 командой
current_number += 1
.
(Оператор
+=
является сокращенной формой записи для
current_number
=
current_number
+
1
.)
Цикл повторяется, пока условие
current_number
<=
5
остается истинным. Так как
1 меньше 5, Python выводит 1, а затем увеличивает значение на 1, отчего
current_
number
становится равным 2. Так как 2 меньше 5, Python выводит 2 и снова при-