Класс для сложения и умножения (на скаляр) вектора [дубликат]Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Класс для сложения и умножения (на скаляр) вектора [дубликат]

Сообщение Anonymous »

Меня попросили создать класс, который бы правильно складывал и скалярно умножал два вектора.
Неклассовым решением этой задачи было бы следующее:

Код: Выделить всё

#import numpy as np
vv1 = np.array([11, 21, 11, 51])
vv2 = np.array([21, 31, 11, 41])
#adding
vv3 = vv1 + vv2
print("v3=" , v3)
vv= vv1 * vv2
vv4=sum(vv)
print("vv4=" , vv4)
Я пытался написать класс, однако возникла ошибка:

Код: Выделить всё

TypeError
Traceback (most recent call last)
Cell In[2], line 21
19 vvt= Vector
20 vvt.__add__(vv1,vv2)
---> 21 vvt.__mul__(vv1,vv2)

Cell In[2], line 14, in Vector.__mul__(self, w)
13 def __mul__(self, w=1):
---> 14     return self.vv1*w.vv1 + self.vv2*w.vv2

TypeError: can't multiply sequence by non-int of type 'list'
Пожалуйста, найдите мой код ниже:

Код: Выделить всё

class Vector:

def __init__(self, vv1=0.0, vv2=0.0):
self.vv1 = vv1
self.vv2 = vv2

def __str__(self):
return "[{}, {}]".format(self.vv1, self.vv2)

def __add__(self, w=1):
return Vector(self.vv1 + w.vv1, self.vv2 + w.vv2)

def __mul__(self, w=1):
return self.vv1*w.vv1 + self.vv2*w.vv2

vv1 = Vector([11, 21, 11, 51])
vv2 = Vector([21, 31, 11, 41])

vvt= Vector
vvt.__add__(vv1,vv2)
vvt.__mul__(vv1,vv2)
Как мне изменить класс, чтобы он правильно складывал и скалярно умножал векторы?
Я пытался написать новый класс Vector, но этого не произошло. работает как положено.

Подробнее здесь: https://stackoverflow.com/questions/793 ... f-a-vector
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Класс для сложения и умножения (на скаляр) вектора
    Anonymous » » в форуме Python
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Класс для сложения и умножения (на скаляр) вектора
    Anonymous » » в форуме Python
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Класс для сложения и умножения (на скаляр) вектора
    Anonymous » » в форуме Python
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Поэлементная операция сложения/вычитания/умножения/деления в двух списках в C#
    Anonymous » » в форуме C#
    0 Ответы
    45 Просмотры
    Последнее сообщение Anonymous
  • Как напечатать треугольник, выровненный по правому краю, с вложенными циклами for (без сложения или умножения строк)
    Anonymous » » в форуме Python
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»