示例#1
0
def lineChart(fileOut:str,title:str,nombres_de_ejes:list[str],datos:tuple[list[int],list[float]]) -> None:  
    Preconditions.checkArgument(len(nombres_de_ejes) ==2,'Debe haber dos nombres de ejes y hay {0:d}'.format(len(nombres_de_ejes)))
    result = File.read('../../../resources/LineChartPattern.html')
    cl = ("'{0:s}'".format(x) for x in nombres_de_ejes)
    camposText = joining(cl, separator=",",prefix="[",suffix="]")
    dt = (filaLineChart(e,datos) for e in range(len(datos[0])))
    dataText = joining(dt,separator=",\n",prefix="",suffix="")
    reglas = {"title":"'"+title+"'", "campos":camposText, "data":dataText}
    result = String.transform(result,reglas);
    File.write(fileOut,result);
示例#2
0
def sol_ecuacion_segundo_grado(a:float,b:float,c:float) -> tuple[float,float] | tuple[complex,complex]:
    Preconditions.checkArgument(a>0,'El coeficiente a debe ser distinto de cero y es {0:.2f}'.format(a))
    disc = b*b-4*a*c
    if disc >= 0 :
        r1 = -b/(2*a)
        r2 = sqrt(disc)/(2*a)
        s1,s2 = r1+r2,r1-r2
        return (s1,s2)
    else :
        re = -b/(2*a)
        im = sqrt(-disc)/(2*a)
        s1,s2 = complex(re,im),complex(re,-im)
        return (s1,s2) 
示例#3
0
 def of(centro: Punto2D, radio: float) -> Circulo2D:
     Preconditions.checkArgument(
         radio >= 0,
         'El radio debe ser mayor o igual a cero y es {0:.2f}'.format(
             radio))
     return Circulo2D(centro, radio)
示例#4
0
def sol_ecuacion_primer_grado(a:float,b:float) -> float: 
    Preconditions.checkArgument(a>0,'El coeficiente a debe ser distinto de cero y es {0:.2f}'.format(a))
    return -b/a
示例#5
0
def media(iterable:Iterable[num]) -> float:
    a = (0.,0) #(sum x, num elem)
    for e in iterable:
        a = (a[0]+e,a[1]+1)
    Preconditions.checkArgument(a[1]>0,'El iterador esta vacio')
    return a[0]/a[1]  
示例#6
0
def deviacion_tipica(iterable:Iterable[num]) -> float:
    a = (0.,0.,0)  #(sum x^2, sum x, num elem)
    for e in iterable:
        a = (a[0]+e*e,a[1]+e,a[2]+1)
    Preconditions.checkArgument(a[2]>0,'El iterador esta vacio')
    return sqrt(a[0]/a[2]-(a[1]/a[2])**2)  
示例#7
0
def area_circulo(radio:float) -> float:
    Preconditions.checkArgument(
        radio>=0,'El radio debe ser mayor o igual a cero y es {0:.2f}'.format(radio))
    return pi*radio**2
示例#8
0
def longitud_circunferencia(radio:float) -> float:
    Preconditions.checkArgument(radio>=0,'El radio debe ser mayor o igual a cero y es {0:.2f}'.format(radio))
    return 2*pi*radio
示例#9
0
 def diagonal(self,i:int,j:int) -> Vector2D:
     Preconditions.checkElementIndex(i, self.n);
     Preconditions.checkElementIndex(j, self.n);
     return self.vertice(i).vector_to(self.vertice(j))
示例#10
0
 def lado(self,i:int) -> Vector2D:
     Preconditions.checkElementIndex(i, self.n);
     return self.vertice(i).vector_to(self.vertice((i+1)%self.n))
示例#11
0
 def vertice(self,i)-> Punto2D:
     Preconditions.checkElementIndex(i, self.n)
     return self.vertices[i]
示例#12
0
 def of(palo, valor):
     Preconditions.checkArgument(
         valor >= 0 and valor < 14 and palo >= 0 and palo < 52,
         "No es posible valor = %d, palo = %d".format(valor, palo))
     return Card(palo, valor)
示例#13
0
 def of_id(ide: int) -> Card:
     Preconditions.checkArgument(ide >= 0 and ide < 52,
                                 "No es posible {0:d}".format(ide))
     palo = ide % 4
     valor = ide % 13
     return Card(palo, valor)