Перемножить числа, переданные в строке, перечисленные через запятую (python)

Рейтинг: -5Ответов: 2Опубликовано: 21.02.2023
def multiply_nums(input_string):
    """
    Перемножить числа, переданные в строке, перечисленные через запятую.
   
    """
    mul = str(0)
    input_string.split(sep=',')
    for x in range(0, len(input_string)):
      mul *= input_string[x]
    return mul

Ответы

▲ -3Принят

Моё решение по вопросу

def multiply_nums(input_string):
    """
    Перемножить числа, переданные в строке, перечисленные через запятую.
   
    """

    numbers = input_string.split(',')
    mul = int(numbers[0])
    for x in range(1, len(numbers)):
      number = numbers[x]
      mul *= int(number)
    return mul

print(multiply_nums('5,7,1,6,4'))
▲ 2
def multiply_nums(s: str) -> int:
    s = map(int, s.split(','))
    mul = 1
    for i in s:
        mul *= i

    return mul

Во-первых, строка на строку не умножается, а вы делаете именно это, потому что хоть и разделив строку по запятым, элементы в списке все еще имеют строковый тип данных. Надо понимать, что 2 + 2 != '2' + '2' Во-вторых, если вы ставите начальным числом 0, то результата в умножении это не даст. Если бы было сложение, то да, начинаем с 0, если нет доп. условий. А да, вы таким образом и не разделили список, вы получили ту же строку с пробелами и запятыми и занимаетесь перебором строки. Чтобы разделить - нужно присвоить результат работы split, например так:

input_string = input_string.split(sep=',')