40 задач на Python. Джеймс Девис

Чтение книги онлайн.

Читать онлайн книгу 40 задач на Python - Джеймс Девис страница 10

Жанр:
Серия:
Издательство:
40 задач на Python - Джеймс Девис

Скачать книгу

False`

      – Генератор `matrix[i][n-i-1] for i in range(n)` собирает элементы побочной диагонали (где сумма индексов строки и столбца равна \( n-1 \)).

      – `sum(…)` вычисляет сумму этих элементов.

      – Если сумма побочной диагонали не равна `magic_sum`, функция возвращает `False`.

      Шаг 7: Вывод результата

      – Код: `if is_magic_square(matrix): print("YES") else: print("NO")`

      – Если функция `is_magic_square(matrix)` возвращает `True`, программа выводит "YES".

      – В противном случае выводится "NO".

      Итог

      Код последовательно проверяет все необходимые условия для магического квадрата, от уникальности чисел до сумм строк, столбцов и диагоналей. Если все условия выполняются, матрица признается магическим квадратом.

3. Проблемы с делением и умножением

      Описание задачи: Напишите программу, которая будет выполнять деление и умножение двух чисел, но с учетом некоторых специальных случаев.

      Условия:

      1. Если второе число равно нулю, программа должна вывести сообщение "Ошибка: деление на ноль" и завершиться.

      2. Если первое число равно нулю, результатом умножения будет 0, независимо от значения второго числа.

      3. Если второе число больше первого, программа должна вывести результат деления в виде десятичной дроби с двумя знаками после запятой.

      4. В остальных случаях программа должна выполнять деление и умножение обычным образом.

      Формат ввода: Два целых числа, разделенных пробелом: (a) и (b) \((-10^9 leq a, b leq 10^9)).

      Формат вывода:

      – Если второе число равно нулю, вывести сообщение "Ошибка: деление на ноль".

      – В остальных случаях вывести результат деления и умножения, учитывая указанные условия.

      Примеры:

      Ввод: 5 2

      Вывод: 10 2.50

      Ввод: 0 7

      Вывод: 0 0

      Ввод: 4 8

      Вывод: 0 0.50

      Ввод: 3 0

      Вывод: Ошибка: деление на ноль

      Примечание:

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

      Идея решения этой задачи включает следующие шаги:

      1. Считывание двух целых чисел (a) и (b).

      2. Проверка, равно ли второе число нулю. Если да, вывести сообщение об ошибке и завершить программу.

      3. Проверка, равно ли первое число нулю. Если да, результат умножения будет 0, иначе обычное умножение.

      4. Проверка, больше ли второе число первого. Если да, результат деления будет десятичной дробью, иначе обычное деление.

      5. Вывод результатов умножения и деления.

      Код, который реализует описанную выше идею:

      ```python

      # Чтение входных данных

      a, b = map(int, input().split())

      # Проверка деления на ноль и вывод ошибки

      if b == 0:

      print("Ошибка: деление на ноль")

      else:

      # Проверка на случай, когда первое число равно нулю

      if a == 0:

      mul_result = 0

      else:

      mul_result

Скачать книгу