Сборник. Сборник упражнений
Скачать 1.68 Mb.
|
Глава 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 , которое можно использовать, когда требуется выражение, но никаких опера- ций выполнять не нужно. |