Ниже я дам подробное объяснение и готовые решения на Python для всех четырех заданий. Так как цель — "Понять", будут пояснения к каждому шагу, а затем код.
- Таблица умножения от 1 до 9 Как работать:
- Мы строим строки для каждого первого множителя i от 1 до 9.
- В каждой строке считаем i умножить на j для j от 1 до 9.
- Чтобы столбцы были ровными, форматируем числа с фиксированной шириной (2 символа) и соединяем пробелами.
Код: def multiplication_table_1_to_9(): for i in range(1, 10): row = [f"{i * j:2d}" for j in range(1, 10)] print(" ".join(row))
вызов
multiplication_table_1_to_9()
- Прямоугольник из символов * размером 5 на 7 Как работать:
- Пусть 5 — количество строк (высота), 7 — количество столбцов (ширина).
- Просто печатаем строку из 7 звездочек 5 раз.
Код: def rectangle_star_pattern(rows=5, cols=7): for _ in range(rows): print("*" * cols)
вызов
rectangle_star_pattern(5, 7)
- Найдите все делители введенного пользователем числа Как работать:
- Сначала читаем число n.
- Если n == 0 предусмотрено как особый случай (делители числа 0 неопределены). В реальных задачах чаще дают ненулевое.
- Чтобы найти делители эффективно, перебираем i от 1 до sqrt(n). Если i делит n, то и n//i — также делитель. Храним маленькие делители и большие отдельно, затем объединим.
- В конце отсортируем и выведем все делители.
Код: def divisors_of_number(): try: n = int(input("Введите число: ").strip()) except ValueError: print("Ошибка: введено не число.") return
if n == 0:
print("Делители числа 0 не определены (бесконечное множество).")
return
small = []
large = []
i = 1
while i * i <= abs(n): # учтем и отрицательные делители, если нужен
if n % i == 0:
small.append(i)
if i != abs(n) // i:
large.append(abs(n) // i)
i += 1
divisors = small + sorted(large)
# если нужен полный набор делителей с учётом знака, можно расширить:
# divisors = sorted(set(small + large) if n > 0 else set([*small, *large, -d for d in small+large]))
print("Делители:", divisors)
вызов
divisors_of_number()
- Для чисел от 1 до 100: FizzBuzz Условия:
- Если число делится на 3, добавить "Fizz".
- Если делится на 5, добавить "Buzz".
- Если число делится и на 3, и на 5, получаем "FizzBuzz" (то есть комбинируем строки).
- Если ничего не условию — выводим само число.
Код: def fizz_buzz_1_to_100(): for num in range(1, 101): out = "" if num % 3 == 0: out += "Fizz" if num % 5 == 0: out += "Buzz" print(out or num)
вызов
fizz_buzz_1_to_100()
Если нужно, могу адаптировать стиль вывода под конкретный класс или задать параметры через аргументы функций.