Python - Uso de while

 
Vista:

Uso de while

Publicado por Alfonso (5 intervenciones) el 23/07/2021 00:49:09
Hola, necesito ayuda para modificar esta función usando while, para que cuando la suma de los elementos de la matriz x sea igual a 50, esta se detenga. Usando un for que recorra filas y columnas lo intente, pero no dió resultado.

1
2
3
4
5
def suma(x):
    fila=len(x)
    col=len(x[0])
    tot_sum=np.sum(x)
    return fila, col, tot_sum
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Uso de while

Publicado por tincopasan (1082 intervenciones) el 23/07/2021 01:43:06
la verdad no entiendo ni lo que quiciste hacer
supongamos:
matriz =[[15,16,17],
[18,19,20],
[21,22,23]]

1)¿sumar 15 + 16 +17? no llega a 50 o las filas siguientes se pasan
2¿sumar 15 + 18 + 21? se pasa de 50 o podría no llegar
3) ¿los valores están definidos correctamente para que la suma sea igual a 50?, si es así, como el ej: 1 ó 2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Uso de while

Publicado por Alfonso (5 intervenciones) el 23/07/2021 04:28:32
Tomando como ejemplo la matriz que pusiste, la función debe sumar sus elementos, es decir, 15+16+17+18+19+20+21+22+23, sin embargo la función debe detenerse una vez que la suma pase el valor 50.

1
2
3
def suma(x):
    tot_sum=np.sum(x)
    return tot_sum

Entonces lo que necesito modificar usando while es el proceso de la suma de los elementos de las matriz, para que no exceda el valor de 50, y que retorne el valor de la suma.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Uso de while

Publicado por tincopasan (1082 intervenciones) el 23/07/2021 07:18:05
veo que seguis con un planteo muy pobre, hay muchas cosas que no aclarás y en mi caso no adivino, así que hago algo simplemente para que te oriente, ya que lo único claro es: usar una función, usar un while y usar np.sum(), así que en base a eso va el código, pero insisto que el planteo es pobre y el uso de np.sum es incongruente:
1
2
3
4
5
6
7
8
9
10
11
12
13
l =[[15,16,17],
[18,19,20],
[21,22,23]]
 
def suma(x,indice=0):
    e=[z for x in l for z in x ]
    while True:
        tot_sum=np.sum(e[:indice])
        if tot_sum> 50:
            return np.sum(e[:indice-1])
        else:indice+=1
 
print(suma(l))
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar