Объясните пожалуйста в чем проблема нижних кодов почему мне ничего не выводят
#4. Напишите функцию, которая возвращает минимальное из пяти чисел. Числа передаются в качестве параметров
def min_of_num(a, b, c, d, e):
min_num = a
if b < min_num:
min_num = b
if c < min_num:
min_num = c
if d < min_num:
min_num = d
if e < min_num:
min_num = e
print(min_of_num(a, b, c, d, e))
'''
#5 Напишите функцию, которая возвращает произведение чисел в указанном диапазоне.
# Границы диапазона передаются в качестве параметров.
def product_of_range(start, end):
product = 1
for i in range(start, end+1):
product *= i
return product
'''
'''
#6. Напишите функцию, которая считает количество цифр в числе. Число передаётся в качестве параметра.
# Из функции нужно вернуть полученное количество цифр.
# Например, если передали 3456, количество цифр будет 4. (использовать только циклы, без готовых функций)
def count_numbers(num):
count = 0
while num != 0:
count += 1
return count
'''
'''
# 7 Напишите функцию, которая проверяет является ли число палиндромом. Число передаётся в качестве параметра.
#Если число палиндром нужно вернуть из функции true, иначе false.
#«Палиндром» — это число, у которого первая часть цифр равна второй перевернутой части цифр.
#Например, 123321 — палиндром
#(первая часть 123, вторая 321, которая после переворота становится 123), 546645 — палиндром, а 421987 — не палиндром.
def palindrome(num):
num_str = str(num)
return num_str == num_str[::-1]
'''
'''
#8. Напишите функцию, которая возвращает сумму чисел в указанном диапазоне.
#Границы диапазона передаются в качестве параметров.
def sum_of_range(start, end):
sum = 0
for i in range(start, end+1):
sum += i
return sum
'''
Answers & Comments
Ответ:
Проблема в том, что в каждой из функций отсутствует вызов самой функции. Чтобы результат работы функции был выведен на экран, необходимо вызвать функцию, передав ей нужные аргументы. Например, для функции `min_of_num`, можно вызвать её следующим образом:
print(min_of_num(1, 2, 3, 4, 5))
Для функций `product_of_range`, `count_numbers` и `palindrome` также необходимо вызвать функции с нужными аргументами и вывести их результаты на экран с помощью функции `print()`. Для функции `sum_of_range` можно поступить аналогичным образом, вызвав её с нужными аргументами:
print(sum_of_range(1, 10))
Ответ:
Проблема заключается в том, что все эти функции определены, но ни одна из них не вызывается, поэтому ничего не выводится на экран. Чтобы вызвать функцию и увидеть результат ее работы, нужно написать код, который вызывает эту функцию.
Пример вызова функций:
# вызов функции min_of_num
print(min_of_num(1, 2, 3, 4, 5))
# вызов функции product_of_range
print(product_of_range(1, 5))
# вызов функции count_numbers
print(count_numbers(3456))
# вызов функции palindrome
print(palindrome(123321))
# вызов функции sum_of_range
print(sum_of_range(1, 5))
Также, у функции count_numbers есть проблема в том, что цикл бесконечен, так как он не изменяет значение переменной num. Чтобы исправить эту проблему, нужно внутри цикла изменять значение переменной num:
def count_numbers(num):
count = 0
while num != 0:
count += 1
num //= 10 # деление нацело на 10
return count