Python - ayuda con 2 problemas

 
Vista:

ayuda con 2 problemas

Publicado por manu (3 intervenciones) el 13/09/2010 19:16:20
Dado el siguiente programa Python:

f = raw_input(’Dame una frase de entrada: ’)
i = 0
cont = 0
while i < len(f):
...while i < len(f) and f[i] == ’ ’:
......i = i + 1
...if i < len(f):
......cont = cont + 1
...while i < len(f) and f[i] != ’ ’:
......i = i + 1
print ’La frase:’, f
print ’tiene’, cont

(a) Escribe la salida que producir´a en la ventana de ejecuci´on, suponiendo que el usuario introduce la cadena “Voy a aprobar Inform´atica B´asica” en respuesta al mensaje de la instrucción raw input de la línea 1.

- este está claro

(b) Modifica este programa para que solicite reiteradamente nuevas frases de entrada hasta que el usuario
introduzca una cadena vaci. Con cada frase de entrada el programa modificado debe realizar exactamente el mismo proceso que efectúa el programa original.

- este está claro tb, y esto es lo que he puesto (lo pongo porque el tercer apartado, donde estoy atrancado, se desarrolla a partir de este)

f = raw_input("Dame una frase de entrada: ")
i = 0
cont = 0
while f != "":
...while i < len(f):
......while i < len(f) and f[i] == " ":
.........i = i + 1
......if i < len(f):
.........cont = cont + 1
......while i < len(f) and f[i] != " ":
.........i = i + 1

...print "La frase:", f
...print "tiene", cont

...f=raw_input("Dame una frase de entrada: ")

y aqui es dnd tengo el fallo (que son 2):

(c) Finalmente, partiendo de la modificacion anterior, tendras que modificar nuevamente el programa para que almacene y muestre por pantalla (al final del mismo) aquellas frases que obtengan los valores maximo y mınimo de la variable cont.

y esto es lo que yo hago:

f = raw_input("Dame una frase de entrada: ")
i = 0
cont = 0
contador=[]
frases=[]
while f!="":
...while i < len(f):
......while i < len(f) and f[i] == " ":
.........i = i + 1
......if i < len(f):
.........cont = cont + 1
......while i < len(f) and f[i] != " ":
.........i = i + 1
...print "La frase:", f
...print "tiene", cont
...contador=contador+[cont]
...frases=frases+[f]
...f=raw_input("Dame una frase de entrada: ")

n=0
maximo=contador[1]
if contador[n] > maximo:
...maximo=contador[n]
...n=n+1
z=0
minimo=contador[1]
if contador[n] < minimo:
...minimo=contador[n]
...z=z+1

print "las frases que introdugiste fueron:", frases
print "el mayor numero de espacios fue:", maximo
print "el menor numero de espacios fue:", minimo

pero hay 2 fallos que no entiendo:

- lo primero es, no se porque si meto una frase con X espacios (11 por ejemplo) el print que me dice cuantos espacios tiene, me devuelve 11 con cualquier frase posterior si tiene menos de 11 y si tiene mas (13 por ejemplo) entonces me devuelve 13 y con las posteriores igual (13 si tiene menos espacios y bien si tiene más)

- y lo segundo es que para el tema de "maximo" y "minimo" muy bien con 2 frases (me dice cual es menor y cual mayor) pero con más, me sigue dando el resultado entre las 2 primeras frases.

cualquier ayuda o idea es bienvenida, gracias y perdón por el tocho!
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