Python - While y funciones

 
Vista:

While y funciones

Publicado por carlo (5 intervenciones) el 23/07/2021 19:17:08
Hola, estoy aprendiendo a programar y necesito ayuda con el uso de while dentro de una función.
Debo crear una función donde el input debe ser una matriz. Necesito sumar los elementos de la matriz hasta que su suma sea igual o menor a 45 .
Entonces en una matriz como:
1
2
3
M=[5,6,7],
[8,9,10],
[11,12,13]
, la función debe sumar 5+6+7+8+9+10 para que se cumpla la condición de <=45 y que retorne el valor de la suma, para lo cual debo usar while.

1
2
3
4
5
6
def funcion(x)
 while suma<=45
    for fila in x:
           for n in fila:
                    suma+=n
 return suma
, había pensado en eso, sin embargo al usar la función con la matriz M devuelve el total de la suma (es decir, 5+6+7+8+9+10+11+12+13=81)
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
Imágen de perfil de algoritmo
Val: 819
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

While y funciones

Publicado por algoritmo (245 intervenciones) el 23/07/2021 22:39:33
Hola

No me parece oportuno incorporar while en ese código.
Te adjunto lo que yo haría.

Espero que te sirva :)

1
2
3
4
5
6
7
8
9
10
11
M=[[5,6,7],
   [8,9,10],
   [11,12,13]]
 
def funcion(x):
    suma = 0
    for fila in x:
        for n in fila:
            suma += n
            if suma > 45:
                return 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
Imágen de perfil de Francisco Javier
Val: 249
Ha aumentado su posición en 29 puestos en Python (en relación al último mes)
Gráfica de Python

While y funciones

Publicado por Francisco Javier (313 intervenciones) el 24/07/2021 17:37:51
Si así sería lo lógico pero si tiene que meter el while pues igual pero con while y listo, pero como dice algoritmo nones oportuno.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# -*- coding: utf-8 -*-
M=[[5,6,7],
   [8,9,10],
   [11,12,13]]
 
def funcion(x):
    suma = 0
    for fila in x:
        for n in fila:
            suma += n
            while suma >= 45:
              return suma
 
 
print(funcion(M))
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