Книга «Изучаем Python»



Pdf көрінісі
бет78/266
Дата03.03.2023
өлшемі7,86 Mb.
#170986
түріКнига
1   ...   74   75   76   77   78   79   80   81   ...   266
Байланысты:
Изучаем Python. Программирование игр, визуализация данных, веб-приложения ( PDFDrive )

4 % 3
1
>>> 
5 % 3
2
>>> 
6 % 3
0
>>> 
7 % 3
1
Оператор 
%
не сообщает частное от целочисленного деления; он возвращает только 
остаток.
Когда одно число нацело делится на другое, остаток равен 0, и оператор 
%
возвра-
щает 0. Например, этот факт может использоваться для проверки четности или 
нечетности числа:
even_or_odd.py
number = input("Enter a number, and I'll tell you if it's even or odd: ")
number = int(number)
if number % 2 == 0:
print("\nThe number " + str(number) + " is even.")
else:
print("\nThe number " + str(number) + " is odd.")
Четные числа всегда делятся на 2. Следовательно, если остаток от деления на 2 
равен 0 (
number
%
2
==
0
), число четное, а если нет — нечетное.
Enter a number, and I'll tell you if it's even or odd: 
42
The number 42 is even.


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 и снова при-


Циклы while
125
бавляет 1 и т. д. Как только значение 
current_number
превысит 5, цикл останавли-
вается, а программа завершается:
1
2
3
4
5
Очень многие повседневные программы содержат циклы 
while
. Например, 
представьте компьютерную игру: цикл 
while
выполняется, пока игра про-
должается, и завершается, как только игрок захочет остановить игру. Вряд ли 
кого-нибудь обрадует, если программа завершает работу преждевременно или 
продолжает работать, когда ей приказали остановиться, так что циклы 
while
весьма полезны.
Пользователь решает прервать работу программы
Программа 
parrot .py
может выполняться, пока пользователь не захочет остановить 
ее, — для этого б
у
льшая часть кода заключается в цикл 
while
. В программе опре-
деляется 
признак завершения
, и программа работает, пока пользователь не введет 
нужное значение:
parrot.py
 
prompt = "\nTell me something, and I will repeat it back to you:"
prompt += "\nEnter 'quit' to end the program. "
 
message = ""
 
while message != 'quit':
message = input(prompt)
print(message)
В точке 

определяется сообщение, которое объясняет, что у пользователя есть 
два варианта: ввести сообщение или ввести признак завершения (в данном случае 
это строка 
'quit'
). Затем переменной 
message

присваивается значение, введен-
ное пользователем. В программе переменная 
message
инициализируется пустой 
строкой 
""
, чтобы значение проверялось без ошибок при первом выполнении 
строки 
while
. Когда программа только запускается и выполнение достигает ко-
манды 
while
, значение 
message
необходимо сравнить с 
'quit'
, но пользователь еще 
не вводил никакие данные. Если у Python нет данных для сравнения, продолжение 
выполнения становится невозможным. Чтобы решить эту проблему, необходимо 
предоставить 
message
исходное значение. И хотя это всего лишь пустая строка, для 
Python такое значение выглядит вполне осмысленно; программа сможет выполнить 
сравнение, на котором основана работа цикла 
while
. Цикл 
while

выполняется, 
пока значение 
message
не равно 
'quit'
.
При первом выполнении цикла 
message
содержит пустую строку, и Python входит 
в цикл. При выполнении команды 
message
=
input(prompt)
Python отображает 
подсказку и ожидает, пока пользователь введет данные. Эти данные сохраняются 
в 
message
и выводятся командой 
print
; после этого Python снова проверяет усло-
вие команды 
while
. Пока пользователь не введет слово 
'quit'
, приглашение будет 


126

Достарыңызбен бөлісу:
1   ...   74   75   76   77   78   79   80   81   ...   266




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет