Python - Terminar de pulir programa Python

 
Vista:
sin imagen de perfil
Val: 19
Ha disminuido su posición en 6 puestos en Python (en relación al último mes)
Gráfica de Python

Terminar de pulir programa Python

Publicado por Laurent (9 intervenciones) el 02/05/2020 09:59:36
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
'''
Deseo crear un programa que me sume los valores enteros que le introduzca, tuviendo en cuenta lo siguiente:
El primer número que se introduzca no formará parte de la suma final.
Si el  primer número es positivo o 0, sumará todos los números  que incorporaremos a partir del segundo hasta que dejamos de incorporar números.
Si el primer número es negativo, sumará todos los números que incorporaremos hasta que aparecerá una letra F.
Ejemplos de lo que quiero hacer:
primer número: 4
segundo número: 2
tercer número: 5
Deseo que el resultado print que me imprima el programa sea 7 (2 +5).
primer número: -1
segundo número: 5
tercer número: 2
cuarto número: 1
quinto número: F
Deseo que el resultado print que me imprima el programa sea 5+2+1=8
'''

Gracias por su ayuda.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
data = int(input())
suma = 0
while data == -1:
    data = int(input())
    if data != "F":
        duma += int(data)
    if data == "F:":
        print(suma)
print(suma)
 
while data != -1:
    data = int(input())
   suma += int(data)
print(suma)
 
 
while data != -1:
    data = int(input())
    suma += int(data)
    print("")
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 joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Terminar de pulir programa Python

Publicado por joel (901 intervenciones) el 02/05/2020 11:59:21
Hola Laurant, seria algo así:

1
2
3
4
5
6
7
8
9
10
11
numeros=[]
numeros.append(int(input()))
while True:
    n = input()
    if numeros[0]<0 and n=="F":
        break
    elif n=="":
        break
    numeros.append(int(n))
 
print(sum(numeros[1:]))

Hay que controlar que se introduzcan los valores correctos... si por ejemplo introducimos una letra que no sea la F dará error.
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
sin imagen de perfil
Val: 19
Ha disminuido su posición en 6 puestos en Python (en relación al último mes)
Gráfica de Python

Terminar de pulir programa Python

Publicado por Laurent (9 intervenciones) el 02/05/2020 12:14:08
Gracias Joel por tu respuesta.

No obstante, sí que funciona cuando el primer número es negativo pero no cuando es positivo.

¿Se debería de adjuntar otro loop?

Gracias de nuevo,
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 joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Terminar de pulir programa Python

Publicado por joel (901 intervenciones) el 02/05/2020 12:28:24
Sin utilizar una lista, seria casi lo mismo...

1
2
3
4
5
6
7
8
9
10
11
numeros=0
primero=int(input())
while True:
    n = input()
    if primero<0 and n=="F":
        break
    elif n=="":
        break
    numeros+=int(n)
 
print(numeros)
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
sin imagen de perfil
Val: 19
Ha disminuido su posición en 6 puestos en Python (en relación al último mes)
Gráfica de Python

Terminar de pulir programa Python

Publicado por Laurent (9 intervenciones) el 02/05/2020 12:36:44
Disculpa de nuevo Joel,

Pero si el primer valor de entrada es negativo funciona tu código como yo deseo. No obstante, si el primer número es positivo y no negativo, no me funciona el código y no me suma todos los valores excepto el primero.

Perdona de nuevo. No quiero ser pesado,

Gracias,

Laurent.
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 joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Terminar de pulir programa Python

Publicado por joel (901 intervenciones) el 03/05/2020 08:54:58
A mi me funcionan tus dos ejemplos Laurent... si pongo: 4, 2, 5 y enter... me devuelve 7!!
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: 19
Ha disminuido su posición en 6 puestos en Python (en relación al último mes)
Gráfica de Python

Terminar de pulir programa Python

Publicado por Laurent (9 intervenciones) el 03/05/2020 09:24:45
Buenos días Joel,

En efecto sí! En Pycharm me funciona perfectamente.

No obstante cuando compruebo este código en UpyLAB no me funciona el caso positivo.

igual lo tendré que plantear con dos loops

while a >=0 y otro loop while a<0

Seguiré pensando...

Pero muchas gracias Joel por tu ayuda!!! Voy a intentar resolverlo!
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 joel
Val: 3.475
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Terminar de pulir programa Python

Publicado por joel (901 intervenciones) el 03/05/2020 10:56:00
Que extraño Laurent... ya me diras cual ha sido el código que te ha funcionado!!
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