Решение задания 1: Числа от 1 до N
n = int(input("Введите N: "))
for i in range(1, n + 1):
print(i)
Логика решения: range(1, n + 1) генерирует числа от 1 до n включительно. Верхняя граница n + 1 нужна потому, что stop не включается в диапазон.
Решение задания 2: Факториал числа
num = int(input("Введите число: "))
factorial = 1
for i in range(1, num + 1):
factorial *= i
print(f"Факториал числа {num} равен {factorial}")
Логика решения: переменная factorial накапливает произведение чисел от 1 до num. При num = 0 цикл не выполняется, и результат остаётся равным 1, что соответствует 0! = 1.
Решение задания 3: Звёздный прямоугольник
width = int(input("Введите ширину: "))
height = int(input("Введите высоту: "))
for _ in range(height):
for _ in range(width):
print("*", end="")
print()
Логика решения: внешний цикл повторяется height раз — по разу для каждой строки. Внутренний цикл печатает width звёздочек в одну строку благодаря end="". print() без аргументов переводит каретку на новую строку. Переменная цикла названа _, потому что её значение не используется.
Решение задания 4: Простое число
num = int(input("Введите число: "))
if num > 1:
for i in range(2, num):
if num % i == 0:
print("Не является простым")
break
else:
print("Является простым")
else:
print("Не является простым")
Логика решения: числа меньше или равные 1 не являются простыми. Для остальных проверяем делимость на все числа от 2 до num - 1. Если делитель найден, выводим результат и прерываем цикл через break. Если цикл завершился без break, сработает else — число простое.
int(num ** 0.5) + 1. Если у числа есть делитель больше корня, то есть и соответствующий меньший делитель.
num = int(input("Введите число: "))
if num > 1:
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
print("Не является простым")
break
else:
print("Является простым")
else:
print("Не является простым")
Решение задания 5: Буквы и цифры
text = input("Введите строку: ")
letters = 0
digits = 0
for char in text:
if char.isalpha():
letters += 1
elif char.isdigit():
digits += 1
print(f"Букв: {letters}")
print(f"Цифр: {digits}")
Логика решения: цикл перебирает каждый символ строки. Метод .isalpha() проверяет, является ли символ буквой, а .isdigit() — цифрой. Пробелы и знаки препинания игнорируются.