#!/usr/bin/env python################################################################################ Vectores n-dimensionales# Modulo que define funciones de lectura/escritura y de operaciones entre una# pareja de vectores n-dimensionales.# Copyright (C) %Y Juan Riquelme a.k.a Soulchainer (J.R.G)# <soulchainer@soulchainer.net>###############################################################################from math import sqrt# Funciones de entrada/salidadef v_lee_vector(n): """ Devuelve un vector (de longitud n) leído de teclado que se pide al usuario. """ if n >= 0: vector = [] for i in range(n): vector.append(float(input('Coordenada %d del vector: ' % i))) return vectordef v_muestra_vector(v): """ Muestra por pantalla el vector v con la notación (a, b, c, ..., n). No devuelve nada. """ print('({0})'.format(('{0}'.format(v))[1:-1]))# Funciones de cálculodef v_longitud(v): """ Devuelve la longitud del vector v """ if not v: return None else: return sqrt(sum([i ** 2 for i in v]))def v_suma(u, v): """ Devuelve el vector resultante de sumar los vectores u y v. Deben ser vectores de la misma dimensión. Sino, devolverá None. """ dimension = len(u) if len(v) == dimension: return [u[i] + v[i] for i in range(len(u))] return Nonedef v_producto_escalar(u, v): """ Devuelve el escalar resultante del producto escalar de u por v. Deben ser vectores de la misma dimensión. Sino, devolverá None. """ if not u or not v: return [] dimension = len(u) if len(v) == dimension: escalar = 0 for i in range(dimension): escalar += u[i] * v[i] return escalar return None