str формат зачем нужен?

Рейтинг: 1Ответов: 1Опубликовано: 04.02.2023

Зачем нужен str формат в данном коде? Понимаю что он форматирует значения переменной numbers, но не понимаю зачем, ведь при вводе данных от пользователя уже форматируется в int. Код должен выполнить сложение в формате int (ведь он складывает числа), так зачем там str?

numbers = int(input("Введите числа: "))
sum = [int(x) for x in str(numbers)]
total = 0
for i in sum:
    total += i
print("Сумма введеных чисел равна: ", total)

Ответы

▲ 0

str формат зачем нужен?

В контексте вашего примера он в принципе не нужен.

Здесь вы не получите много чисел для сложения

numbers = int(input("Введите числа: ")) 

а только одно в лучшем случае. Так что ваш дальнейший код не имеет смысла, в том числе и применение str тут

sum = [int(x) for x in str(numbers)]

Вот так как то можно сделать то что вы задумали (или не вы)...

print("Сумма введеных чисел равна: ", sum(map(int,input("Введите числа через пробел: ").split(' '))))

UPD

Python 3.10.0 (tags/v3.10.0:b494f59, Oct  4 2021, 19:00:18) [MSC v.1929 64 bit (AMD64)]
Type 'copyright', 'credits' or 'license' for more information
IPython 8.8.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: class SumNumbers:
   ...:     def __init__(self):
   ...:         self.get_data_from_user()
   ...:
   ...:     def get_data_from_user(self):
   ...:         # Здесь мы запрашиваем данные от пользователя, конкретно получаем
   ...:         # список "чисел" так как input возвращает данные с типом str
   ...:         self.input_data_list_type_string = input("Введите числа через пробел: ").split(' ')
   ...:
   ...:     def get(self):
   ...:         # здесь волшебство при помощи встроеной функции map
   ...:         input_data_list_type_integers = map(int, self.input_data_list_type_string)
   ...:         # здесь используем встроеную функцию sum
   ...:         return sum(input_data_list_type_integers)
   ...:

In [2]: def main():
   ...:     sum_numbers = SumNumbers()
   ...:     result = sum_numbers.get()
   ...:     # используем f форматирование строк для вывода на печать результата
   ...:     print(f"Сумма введеных чисел равна: {result}")
   ...:

In [3]: if __name__ == "__main__":
   ...:     main()
   ...:
Введите числа через пробел: 2 2
Сумма введеных чисел равна: 4

In [4]: