Главная страница

Сборник. Сборник упражнений


Скачать 1.68 Mb.
НазваниеСборник упражнений
Дата18.02.2023
Размер1.68 Mb.
Формат файлаpdf
Имя файлаСборник.pdf
ТипСборник
#942935
страница10 из 14
1   ...   6   7   8   9   10   11   12   13   14
Глава
9
Введение
в программирование
Упражнение 1. Почтовый адрес
##
# Отобразить почтовый адрес пользователя
#
print("Бен Стивенсон")
print("Департамент теории вычислительных систем")
print("Университет Калгари")
print("2500 Университетское шоссе NW")
print("Калгари, Альберта T2N 1N4")
print("Канада")
Упражнение 3. Площадь комнаты
##
# Вычислить площадь комнаты
#
# Считываем ввод пользователя length = float(input("Введите длину комнаты (м): "))
width = float(input("Введите ширину комнаты (м): "))
# Вычислим площадь комнаты area = length * width
# Отобразим результат print("Площадь комнаты равна", area, "кв.м.")
Упражнение 4. Площадь садового участка
##
# Вычисляем площадь садового участка в акрах
#
Функция float используется для преобразования пользовательского ввода в нужный тип данных.
В Python умножение выполняется при помощи оператора *.

Введение в программирование

161
SQFT_PER_ACRE = 43560
# Запрашиваем информацию у пользователя length = float(input("Введите длину участка (футы): "))
width = float(input("Введите ширину участка (футы): "))
# Вычислим площадь в акрах acres = length * width / SQFT_PER_ACRE
# Отобразим результат print("Площадь садового участка равна", acres, "акров")
Упражнение 5. Сдаем бутылки
##
# Вычисляем доход от сданной тары
#
LESS_DEPOSIT = 0.10
MORE_DEPOSIT = 0.25
# Запрашиваем у пользователя количество бутылок каждого вида less = int(input("Сколько у вас бутылок объемом 1 литр и меньше? "))
more = int(input("Сколько у вас бутылок объемом больше 1 литра? "))
# Вычисляем сумму refund = less * LESS_DEPOSIT + more * MORE_DEPOSIT
# Отобразим результат print("Ваша выручка составит $%.2f." % refund)
Спецификатор формата %.2f указывает Python на то, что необходимо форматировать значение в виде числа с плавающей запятой с двумя десятичными знаками.
Упражнение 6. Налоги и чаевые
##
# Вычисляем налог и сумму чаевых в ресторане
#
TAX_RATE = 0.05
TIP_RATE = 0.18
В моем регионе налог составляет 5 %. В языке Python 5 % и 18 % представляются как
0.05 и 0.18 соответственно.
# Запрашиваем сумму счета у пользователя cost = float(input("Введите сумму счета: "))

162
Решения
# Вычисляем сумму налога и чаевых tax = cost * TAX_RATE
tip = cost * TIP_RATE
total = cost + tax + tip
# Отобразим результат print("Налог составил %.2f, чаевые – %.2f, общая сумма", \
"заказа: %.2f" % (tax, tip, total))
Знак обратной косой черты (\) называется символом продолжения строки. Он со- общает Python о том, что инструкция будет продолжена на следующей строке. Не вводите пробелы и иные символы, включая символ табуляции, после косой черты.
Упражнение 7. Сумма первых n положительных чисел
##
# Рассчитываем сумму первых n положительных чисел
#
# Запрашиваем значение числа n у пользователя n = int(input("Введите положительное число: "))
# Рассчитываем сумму sm = n * (n + 1) / 2
В Python есть встроенная функция с именем sum, поэтому для нашей переменной мы выбрали другое имя.
# Отобразим результат print("Сумма первых", n, "положительных чисел равна", sm)
Упражнение 10. Арифметика
##
# Демонстрируем математические операции и использование модуля math
#
from math import log10
Необходимо импортировать функцию log10 из модуля math, прежде чем она будет использована. Обычно все инструкции импорта располагаются в начале кода.
# Запрашиваем два целых числа у пользователя a = int(input("Введите число a: "))

Введение в программирование

163
b = int(input("Введите число b: "))
# Рассчитываем и отображаем сумму, разницу, произведение, частное и остаток от деления print(a, "+", b, "=", a + b)
print(a, "–", b, "=", a – b)
print(a, "*", b, "=", a * b)
print(a, "/", b, "=", a / b)
print(a, "%", b, "=", a % b)
# Рассчитываем десятичный логарифм и степень print("Десятичный логарифм числа", a, "равен", log10(a))
print(a, "в степени", b, "равно", a ** b)
Упражнение 13. Размен
##
# Рассчитываем минимальное количество монет для представления указанной суммы
#
CENTS_PER_TOONIE = 200
CENTS_PER_LOONIE = 100
CENTS_PER_QUARTER = 25
CENTS_PER_DIME =10
CENTS_PER_NICKEL =5
# Запрашиваем у пользователя сумму в центах cents = int(input("Введите сумму в центах: "))
# Определим количество двухдолларовых монет путем деления суммы на 200. Затем вычислим
# оставшуюся сумму для размена, рассчитав остаток от деления print(" ", cents // CENTS_PER_TOONIE, "двухдолларовых монет")
cents = cents % CENTS_PER_TOONIE
Деление без остатка в Python выполняется при помощи оператора //. При этом ре- зультат всегда будет округлен в нижнюю сторону, что нам и требуется.
# Повторяем эти действия для остальных монет print(" ", cents // CENTS_PER_LOONIE, "однодолларовых монет")
cents = cents % CENTS_PER_LOONIE
print(" ", cents // CENTS_PER_QUARTER, "25–центовых монет")
cents = cents % CENTS_PER_QUARTER
print(" ", cents // CENTS_PER_DIME, "10–центовых монет")
cents = cents % CENTS_PER_DIME
print(" ", cents // CENTS_PER_NICKEL, "5–центовых монет")
cents = cents % CENTS_PER_NICKEL
# Отобразим остаток в центах print(" ", cents, "центов")
Остаток от деления двух чисел вычисляется при помощи функции %, для возведения в степень есть оператор **.

164
Решения
Упражнение 14. Рост
##
# Преобразуем рост в футах и дюймах в сантиметры
#
IN_PER_FT = 12
CM_PER_IN = 2.54
# Запрашиваем рост у пользователя print("Введите рост:")
feet = int(input("Количество футов: "))
inches = int(input("Количество дюймов: "))
# Переводим в сантиметры cm = (feet * IN_PER_FT + inches) * CM_PER_IN
# Отобразим результат print("Ваш рост в сантиметрах:", cm)
Упражнение 17. Теплоемкость
##
# Вычислить количество энергии, требуемое для нагрева воды, а также стоимость нагрева
#
# Определим константы для удельной теплоемкости воды и стоимости электричества
WATER_HEAT_CAPACITY = 4.186
ELECTRICITY_PRICE = 8.9
J_TO_KWH = 2.777e–7
Python позволяет записывать числа в научной нотации, когда коэффициент распола- гается слева от буквы e, а порядок – справа. Таким образом, число 2,777*10
–7
может быть записано как 2,777e–7.
# Запрашиваем у пользователя объем воды и требуемое изменение температуры volume = float(input("Объем воды в миллилитрах: "))
d_temp = float(input("Повышение температуры (в градусах Цельсия): "))
Поскольку вода обладает плотностью 1 грамм на миллилитр, в данном упражнении можно взаимозаменять граммы и миллилитры. Решение запрашивать у пользовате- ля объем жидкости в миллилитрах было принято из соображений удобства, посколь- ку люди привыкли представлять себе объем кофейной кружки, а не массу воды в ней.
# Вычисляем количество энергии в джоулях q = volume * d_temp * WATER_HEAT_CAPACITY

Введение в программирование

165
# Отображаем результат в джоулях print("Потребуется %d Дж энергии." % q)
# Вычисляем стоимость kwh = q * J_TO_KWH
cost = kwh * ELECTRICITY_PRICE
# Отображаем стоимость print("Стоимость энергии: %.2f центов." % cost)
Упражнение 19. Свободное падение
##
# Рассчитываем скорость объекта, отпущенного с определенной высоты,
# в момент столкновения с землей
#
from math import sqrt
# Определяем константу ускорения свободного падения
GRAVITY = 9.8
# Запрашиваем высоту, с которой объект был отпущен d = float(input("Высота отпускания объекта (в метрах): "))
# Рассчитываем финальную скорость vf = sqrt(2 * GRAVITY * d)
v
i
2
не была включена в формулу расчета v
f
, поскольку v
i
= 0.
# Отобразим результат print("Объект достигнет земли на скорости %.2f м/с." % vf)
Упражнение 23. Площадь правильного многоугольника
##
# Вычисляем площадь правильного многоугольника
#
from math import tan, pi
# Запрашиваем информацию у пользователя s = float(input("Введите длину сторон: "))
n = int(input("Введите число сторон: "))
Сразу конвертируем n в целочисленное значение, а не в число с плавающей запятой, поскольку у многоугольника не может быть дробного количества сторон.

166
Решения
# Вычисляем площадь многоугольника area = (n * s ** 2) / (4* tan(pi / n))
# Отобразим результат print("Площадь многоугольника равна", area)
Упражнение 25. Единицы времени (снова)
##
# Переводим секунды в дни, часы, минуты и секунды
#
SECONDS_PER_DAY = 86400
SECONDS_PER_HOUR = 3600
SECONDS_PER_MINUTE = 60
# Запрашиваем у пользователя длительность в секундах seconds = int(input("Введите количество секунд: "))
# Переводим введенное значение в дни, часы, минуты и секунды days = seconds / SECONDS_PER_DAY
seconds = seconds % SECONDS_PER_DAY
hours = seconds / SECONDS_PER_HOUR
seconds = seconds % SECONDS_PER_HOUR
minutes = seconds / SECONDS_PER_MINUTE
seconds = seconds % SECONDS_PER_MINUTE
# Отобразим результат в требуемом формате print("Длительность:", \
"%d:%02d:%02d:%02d." % (days, hours, minutes, seconds))
Спецификатор формата %02d указывает Python на то, что необходимо форматировать целочисленное значение в виде двух цифр путем добавления ведущего нуля при необходимости.
Упражнение 29. Температура с учетом ветра
##
# Вычисляем коэффициент охлаждения ветром
#
WC_OFFSET = 13.12
WC_FACTOR1 = 0.6215
WC_FACTOR2 = –11.37
WC_FACTOR3 = 0.3965
WC_EXPONENT = 0.16
# Запрашиваем у пользователя температуру воздуха и скорость ветра temp = float(input("Температура воздуха (градусы Цельсия): "))
Вычисление коэффициента охлаждения ветром потребова- ло ввода нескольких констант, которые были определены учеными и медиками.

Введение в программирование

167
speed = float(input("Скорость ветра (км/ч): "))
# Определяем коэффициент охлаждения ветром wci = WC_OFFSET + \
WC_FACTOR1 * temp + \
WC_FACTOR2 * speed ** WC_EXPONENT + \
WC_FACTOR3 * temp * speed ** WC_EXPONENT
# Отобразим результат, округленный до ближайшего целого print("Коэффициент охлаждения ветром равен", round(wci))
Упражнение 33. Сортировка трех чисел
##
# Сортируем три числа по возрастанию
#
# Запрашиваем числа у пользователя и записываем их в переменные a, b и c a = int(input("Введите первое число: "))
b = int(input("Введите второе число: "))
c = int(input("Введите третье число: "))
mn = min(a, b, c) # Минимальное значение mx = max(a, b, c) # Максимальное значение md = a + b + c – mn – mx # Среднее значение
# Отобразим результат print("Числа в порядке возрастания:")
print(" ", mn)
print(" ", md)
print(" ", mx)
Упражнение 34. Вчерашний хлеб
##
# Вычисляем стоимость вчерашнего хлеба
#
BREAD_PRICE = 3.49
DISCOUNT_RATE = 0.60
# Запрашиваем данные у пользователя num_loaves = int(input("Введите количество вчерашних буханок хлеба: "))
# Вычисляем скидку и общую стоимость regular_price = num_loaves * BREAD_PRICE
discount = regular_price * DISCOUNT_RATE
total = regular_price – discount
# Отобразим результат в нужном формате print("Номинальная цена: %5.2f" % regular_price)
Поскольку слова min и max являются в Python зарезервированными, мы не можем использовать их для име- нования переменных. Вместо этого мы будем хранить значения мини- мума и максимума в переменных с именами mn и mx.

168
Решения print("Сумма скидки: %5.2f" % discount)
print("Итого: %5.2f" % total)
Формат %5.2f предполагает использование пяти знакомест для отображения чисел, при этом под десятичные знаки должно быть отведено два места. Это поможет внеш- не выровнять столбцы в таблице при разном количестве цифр в значениях.

Глава
10
Принятие решений
Упражнение 35. Чет или нечет?
##
# Определяем и выводим на экран информацию о том, четное введенное число или нечетное
#
# Запрашиваем целое число у пользователя num = int(input("Введите целое число: "))
# Используем оператор взятия остатка от деления if num % 2 == 1:
print(num, "нечетное.")
else:
print(num, "четное.")
Упражнение 37. Гласные и согласные
##
# Определяем, является буква гласной или согласной
#
# Запрашиваем ввод буквы с клавиатуры letter = input("Введите букву латинского алфавита: ")
# Классифицируем букву и выводим результат if letter == "a" or letter == "e" or \
letter == "i" or letter == "o" or \
letter == "u":
print("Это гласная буква.")
elif letter == "y":
print("Иногда буква гласная, иногда согласная.")
else:
print("Это согласная буква.")
Упражнение 38. Угадайте фигуру
##
# Определяем вид фигуры по количеству сторон
Остаток от деления четного чис- ла на 2 всегда будет давать 0, а нечетного – 1.
Эта версия программы ра- ботает только для ввода букв в нижнем регистре. Вы можете добавить проверку на заглавные буквы, если есть такая необходимость.

170
Решения
#
# Запрашиваем у пользователя количество сторон nsides = int(input("Введите количество сторон фигуры: "))
# Определяем вид фигуры, оставляя его пустым, если введено некорректное число name = ""
if nsides == 3:
name = "треугольник"
elif nsides == 4:
name = "прямоугольник"
elif nsides == 5:
name = "пятиугольник"
elif nsides == 6:
name = "шестиугольник"
elif nsides == 7:
name = "семиугольник"
elif nsides == 8:
name = "восьмиугольник"
elif nsides == 9:
name = "девятиугольник"
elif nsides == 10:
name = "десятиугольник"
# Выводим ошибку ввода if name == "":
print("Введенное количество сторон не поддерживается программой.")
else:
print("Эта фигура:", name)
Упражнение 39. Сколько дней в месяце?
##
# Определяем количество дней в месяце
#
# Запрашиваем у пользователя название месяца month = input("Введите название месяца: ")
# Вычисляем количество дней в месяце days = 31
Изначально считаем, что в месяце 31 день, после чего постепенно корректируем это предположение.
if month == "Апрель" or month == "Июнь" or \
month == "Сентябрь" or month == "Ноябрь":
days = 30
Пустую строку мы используем как индикатор.
Если введенное пользователем значение ока- жется за границами обрабатываемого нами диапазона, значение переменной name останет- ся пустым, что позволит нам позже вывести со- общение об ошибке.

Принятие решений

171
elif month == "Февраль":
days = "28 или 29"
Для февраля присваиваем переменной days строковое значение. Это позволит нам вывести информацию о том, что в этом месяце количество дней может варьироваться.
# Выводим результат print("Количество дней в месяце", month, "равно", days)
Упражнение 41. Классификация треугольников
##
# Классифицируем треугольники на основании длин их сторон
#
# Запрашиваем у пользователя длины сторон треугольника side1 = float(input("Введите длину первой стороны: "))
side2 = float(input("Введите длину второй стороны: "))
side3 = float(input("Введите длину третьей стороны: "))
# Определяем вид треугольника if side1 == side2 and side2 == side3:
tri_type = "равносторонний"
elif side1 == side2 or side2 == side3 or \
side3 == side1:
tri_type = "равнобедренный"
else:
tri_type = "разносторонний"
# Отображаем вид треугольника print("Это", tri_type, "треугольник")
Упражнение 42. Узнать частоту по ноте
##
# Преобразуем название ноты в частоту
#
C4_FREQ = 261.63
D4_FREQ = 293.66
E4_FREQ = 329.63
F4_FREQ = 349.23
G4_FREQ = 392.00
A4_FREQ = 440.00
B4_FREQ = 493.88
# Запрашиваем у пользователя название ноты name = input("Введите название ноты в виде буквы и цифры, например C4: ")
При проверке того, является ли тре- угольник равносторонним, можно было добавить условие равенства side1
и side3, но в этом нет необ- ходимости, поскольку оператор ра- венства (==) является транзитивным.

172
Решения
# Сохраняем название ноты и номер октавы в разных переменных note = name[0]
octave = int(name[1])
# Получаем частоту ноты четвертой октавы if note == "C":
freq = C4_FREQ
elif note == "D":
freq = D4_FREQ
elif note == "E":
freq = E4_FREQ
elif note == "F":
freq = F4_FREQ
elif note == "G":
freq = G4_FREQ
elif note == "A":
freq = A4_FREQ
elif note == "B":
freq = B4_FREQ
# Адаптируем частоту к конкретной октаве freq = freq / 2 ** (4 – octave)
# Выводим результат print("Частота ноты", name, "равна", freq)
Упражнение 43. Узнать ноту по частоте
##
# Запрашиваем у пользователя частоту ноты и определяем ее название
#
C4_FREQ = 261.63
D4_FREQ = 293.66
E4_FREQ = 329.63
F4_FREQ = 349.23
G4_FREQ = 392.00
A4_FREQ = 440.00
B4_FREQ = 493.88
LIMIT = 1
# Запрашиваем у пользователя частоту ноты freq = float(input("Введите частоту ноты (Гц): "))
# Определяем ноту по частоте. Если нота не найдена, присваиваем переменной
# пустую строку if freq >= C4_FREQ – LIMIT and freq <= C4_FREQ + LIMIT:
note = "C4"
elif freq >= D4_FREQ – LIMIT and freq <= D4_FREQ + LIMIT:
note = "D4"

Принятие решений

173
elif freq >= E4_FREQ – LIMIT and freq <= E4_FREQ + LIMIT:
note = "E4"
elif freq >= F4_FREQ – LIMIT and freq <= F4_FREQ + LIMIT:
note = "F4"
elif freq >= G4_FREQ – LIMIT and freq <= G4_FREQ + LIMIT:
note = "G4"
elif freq >= A4_FREQ – LIMIT and freq <= A4_FREQ + LIMIT:
note = "A4"
elif freq >= B4_FREQ – LIMIT and freq <= B4_FREQ + LIMIT:
note = "B4"
else:
note = ""
# Отображаем результат или сообщение об ошибке if note == "":
print("Ноты с заданной частотой не существует.")
else:
print("Введенная частота примерно соответствует ноте", note)
Упражнение 47. Определение времени года
##
# Определяем и выводим название сезона по дате
#
# Запрашиваем у пользователя дату month = input("Введите название месяца: ")
day = int(input("Введите день: "))
Представленное решение содержит множество блоков elif, чтобы максимально упростить сценарий. Можно уменьшить количество блоков elif за счет усложнения общей условной конструкции.
# Определяем сезон if month == "Январь" or month == "Февраль":
season = "Зима"
elif month == "Март":
if day < 20:
season = "Зима"
else:
season = "Весна"
elif month == "Апрель" or month == "Май":
season = "Весна"
elif month == "Июнь":
if day < 21:
season = "Весна"
else:

174
Решения season = "Лето"
elif month == "Июль" or month == "Август":
season = "Лето"
elif month == "Сентябрь":
if day < 22:
season = "Лето"
else:
season = "Осень"
elif month == "Октябрь" or month == "Ноябрь":
season = "Осень"
elif month == "Декабрь":
if day < 21:
season = "Осень"
else:
season = "Зима"
# Выводим результат print(month, day, "соответствует сезону", season)
Упражнение 49. Китайский гороскоп
##
# Определяем животное, ассоциированное с введенным годом в китайском гороскопе
#
# Запрашиваем у пользователя год year = int(input("Введите год: "))
# Определяем ассоциированное с годом животное if year % 12 == 8:
animal = "Дракон"
elif year % 12 == 9:
animal = "Змея"
elif year % 12 == 10:
animal = "Лошадь"
elif year % 12 == 11:
animal = "Коза"
elif year % 12 == 0:
animal = "Обезьяна"
elif year % 12 == 1:
animal = "Петух"
elif year % 12 == 2:
animal = "Собака"
elif year % 12 == 3:
animal = "Свинья"
elif year % 12 == 4:
animal = "Крыса"
elif year % 12 == 5:
animal = "Бык"

Принятие решений

175
elif year % 12 == 6:
animal = "Тигр"
elif year % 12 == 7:
animal = "Кролик"
# Выводим результат print("Год %d ассоциирован с животным: %s." % (year, animal))
При форматировании нескольких элементов в одной строке они перечисляются че- рез запятую в круглых скобках справа от оператора %.
Упражнение 52. Буквенные оценки – в числовые
##
# Преобразуем буквенные оценки в числовые
#
A = 4.0
A_MINUS = 3.7
B_PLUS = 3.3
B = 3.0
B_MINUS = 2.7
C_PLUS = 2.3
C = 2.0
C_MINUS = 1.7
D_PLUS = 1.3
D = 1.0
F = 0
INVALID = –1
# Запрашиваем буквенную оценку у пользователя letter = input("Введите буквенную оценку: ")
letter = letter.upper()
Инструкция letter = letter.upper() переводит все символы нижнего регистра в верхний, сохраняя результат в первоначальную переменную. Это позволит рабо- тать с оценками, введенными в нижнем регистре, без включения в программу до- полнительных условных конструкций.
# Преобразуем оценку из буквенной в числовую, используя значение –1 как индикатор,
# означающий ошибочный ввод if letter == "A+" or letter == "A":
gp = A
elif letter == "A–":
gp = A_MINUS

176
Решения elif letter == "B+":
gp = B_PLUS
elif letter == "B":
gp = B
elif letter == "B–":
gp = B_MINUS
elif letter == "C+":
gp = C_PLUS
elif letter == "C":
gp = C
elif letter == "C–":
gp = C_MINUS
elif letter == "D+":
gp = D_PLUS
elif letter == "D":
gp = D
elif letter == "F":
gp = F
else:
gp = INVALID
# Выводим результат if gp == INVALID:
print("Введена некорректная оценка.")
else:
print("Буквенная оценка", letter, "соответствует", gp, "баллам.")
Упражнение 54. Оценка работы
##
# Определение оценки работы сотрудников при помощи рейтингов от пользователя
#
RAISE_FACTOR = 2400.00
UNACCEPTABLE = 0
ACCEPTABLE = 0.4
MERITORIOUS = 0.6
# Запрашиваем у пользователя рейтинг rating = float(input("Введите рейтинг: "))
# Классифицируем сотрудников if rating == UNACCEPTABLE:
performance = "низкий"
elif rating == ACCEPTABLE:
performance = "удовлетворительный"
elif rating >= MERITORIOUS:
performance = "высокий"
else:
performance = ""

Принятие решений

177
#Выводим результат if performance == "":
print("Введен ошибочный рейтинг.")
else:
print("Основываясь на введенном рейтинге, ваш уровень: %s." % \
performance)
print("Прибавка к зарплате составит: $%.2f." % \
(rating * RAISE_FACTOR))
Необходимость заключать выражение rating * RAISE_FACTOR в последней строке кода в скобки объясняется тем, что операторы % и * имеют равный приоритет. Добавление скобок позволило сообщить Python, что сначала нужно выполнить математическую операцию, а затем – операцию форматирования.
Упражнение 58. Високосный год?
##
# Определяем, високосный заданный год или нет
#
# Запрашиваем у пользователя год year = int(input("Введите год: "))
# Определяем, високосный или нет if year % 400 == 0:
isLeapYear = True elif year % 100 == 0:
isLeapYear = False elif year % 4 == 0:
isLeapYear = True else:
isLeapYear = False
# Отображаем результат if isLeapYear:
print(year, " – високосный год.")
else:
print(year, " – невисокосный год.")
Упражнение 61. Действительный номерной знак
машины?
## Определяем формат номерного знака. Всего допустимых формата два:
# 1) 3 буквы и 3 цифры
# 2) 4 цифры 3 буквы
# Запрашиваем номер у пользователя plate = input("Введите номерной знак машины: ")

178
Решения
# Проверяем номерной знак. Необходимо проверить все 6 знаков для номера старого образца
# и 7 знаков – для нового if len(plate) == 6 and \
plate[0] >= "A" and plate[0] <= "Z" and \
plate[1] >= "A" and plate[1] <= "Z" and \
plate[2] >= "A" and plate[2] <= "Z" and \
plate[3] >= "0" and plate[3] <= "9" and \
plate[4] >= "0" and plate[4] <= "9" and \
plate[5] >= "0" and plate[5] <= "9":
print("Это номерной знак старого образца.")
elif len(plate) == 7 and \
plate[0] >= "0" and plate[0] <= "9" and \
plate[1] >= "0" and plate[1] <= "9" and \
plate[2] >= "0" and plate[2] <= "9" and \
plate[3] >= "0" and plate[3] <= "9" and \
plate[4] >= "A" and plate[4] <= "Z" and \
plate[5] >= "A" and plate[5] <= "Z" and \
plate[6] >= "A" and plate[6] <= "Z":
print("Это номерной знак нового образца.")
else:
print("Неверный номерной знак.")
Упражнение 62. Играем в рулетку
##
# Определяем выпавший номер на рулетке и выигрыш
#
from random import randrange
# Симулируем запуск рулетки, используя число 37 для представления номера 00
value = randrange(0, 38)
if value == 37:
print("Выпавший номер: 00...")
else:
print("Выпавший номер: %d..." % value)
# Отображаем выигрыш для одного числа if value == 37:
print("Выигравшая ставка: 00")
else:
print("Pay", value)
# Отображаем выигрыш по цветам
# В первой строке проверяем число на вхождение в ряд 1, 3, 5, 7 и 9
# Во второй строке проверяем число на вхождение в ряд 12, 14, 16 и 18
# В третьей строке проверяем число на вхождение в ряд 19, 21, 23, 25 и 27
# В четвертой строке проверяем число на вхождение в ряд 30, 32, 34 и 36
if value % 2 == 1 and value >= 1 and value <= 9 or \
value % 2 == 0 and value >= 12 and value <= 18 or \

Принятие решений

179
value % 2 == 1 and value >= 19 and value <= 27 or \
value % 2 == 0 and value >= 30 and value <= 36:
print("Выигравшая ставка: красное")
elif value == 0 or value == 37:
pass else:
print("Выигравшая ставка: черное")
# Отображаем выигрыш по чет/нечет if value >= 1 and value <= 36:
if value % 2 == 1:
print("Выигравшая ставка: нечетное")
else:
print("Выигравшая ставка: четное")
# Отображаем выигрыш по низ/верх if value >= 1 and value <= 18:
print("Выигравшая ставка: от 1 до 18")
elif value >= 19 and value <= 36:
print("Выигравшая ставка: от 19 до 36")
Тело блоков if, elif или else должно со- держать по крайней мере одно выраже- ние. В языке Python есть ключевое слово pass
, которое можно использовать, когда требуется выражение, но никаких опера- ций выполнять не нужно.

1   ...   6   7   8   9   10   11   12   13   14


написать администратору сайта