Задание 3 Создайте класс Vector, который хранит в себе вектор целых чисел. У класса Vector есть:
1. конструктор _init_, принимающий произвольное количество аргументов. Среди всех переданных аргументов необходимо оставить только целые числа и сохранить их в атрибут
values в виде списка;
2.переопределить метод _str_ так, чтобы экземпляр класса Vector выводился следующим
образом:
•"Вектор( , , , …)", если вектор не пустой. При этом значения должны быть упорядочены по возрастанию (будьте аккуратнее с пробелами, они стоят только после
запятых, см. пример ниже);
•"Пустой вектор", если наш вектор не хранит в себе значения
Создайте класс Vector с указанными атрибутами и методами.
```python
class Vector:
def __init__(self, *args):
self.values = []
for arg in args:
if isinstance(arg, int):
self.values.append(arg)
def __str__(self):
if len(self.values) == 0:
return "Пустой вектор"
else:
sorted_values = sorted(self.values)
return "Вектор(" + ", ".join(str(value) for value in sorted_values) + ")"
```
Давайте разберемся по шагам:
1. Мы создаем класс Vector с конструктором __init__, который принимает произвольное количество аргументов *args.
2. Мы создаем атрибут values, который будет хранить список целых чисел.
3. Мы используем цикл for, чтобы перебрать все переданные аргументы из *args.
4. Мы проверяем, является ли аргумент целым числом с помощью isinstance(arg, int).
5. Если аргумент является целым числом, мы добавляем его в список values.
6. В методе __str__ мы проверяем длину списка values.
7. Если список пустой, мы возвращаем строку "Пустой вектор".
8. Если список не пустой, мы сортируем значения в списке values по возрастанию с помощью sorted(self.values) и преобразуем их в строки с помощью генератора списка.
9. Мы объединяем строки значений через запятую с помощью метода join и добавляем их в строку "Вектор(" соответствующим образом.
10. Мы возвращаем полученную строку.
Надеюсь, это поможет вам понять, как работает данный класс Vector. Если у вас возникнут еще вопросы, пожалуйста, не стесняйтесь задавать их.