ayuda con un ejercicio de phyton!!gracias

Agrupa todas las consultas sobre los lenguajes de programacion como C, C++, Python, Java ...

ayuda con un ejercicio de phyton!!gracias

Notapor alfredo23 » Jue Nov 04, 2010 8:53 pm

SEguro que es una tonteria pero me han mandado el siguiente ejercicio y no lo entiendo y menos se como hacerlo , si podrias ayudar os lo agradeceria mucho . gracias
3. Ejercicio
Python posee una función predefinida llamada len que, aplicada a una secuencia (como por ejemplo
una cadena) retorna su longitud:
>>> print(len(’Adiós mundo cruel’))
17
Haciendo uso de len, escríbase una función llamada ajusta_derecha que, tomando como argumentos
una cadena s y una longitud l (entera), retorne otra cadena cuya longitud sea l, y que
contenga la cadena s ajustada a la derecha, rellenando con los espacios necesarios por la izquierda.
En el caso de que la longitud de s sea mayor que l, entonces debe retornar una cadena igual a s.
El valor predeterminado del argumento l será 20. La función debe estar documentada por medio
de un docstring apropiado.
Ejemplo de uso:
>>> print(ajusta_derecha(’En un lugar de la Mancha’))
En un lugar de la Mancha
>>> print(ajusta_derecha(’de cuyo nombre no quiero acordarme’))
de cuyo nombre no quiero acordarme
####HE INTRODUCIDO ESTO PERO EL PROBLEMA QUE TENGO ES QUE AL INTRODUCIR LA VARIABLE "s"(por ejemplo fruta ) LA FUNCION NO RECONOCE LA VARIABLE Y NO EJECUTA LA FUNCION ALGUIEN PUEDE AYUDARME A CORREGIR EL ERROR. MUCHAS GRACIAS


def ajusta_derecha(s,l = 20):
longitud_cadena = len(s)
if longitud_cadena > l:
return (s)
else:
diferencia = l - longitud_cadena
espacio = ' '
return( espacio*diferencia + s)
alfredo23
 
Mensajes: 12
Registrado: Jue Nov 04, 2010 8:49 pm

Re: ayuda con un ejercicio de phyton!!gracias

Notapor Juanxo » Vie Nov 05, 2010 5:19 pm

Código: Seleccionar todo
def ajustar_derecha(s, l=20):
   
   if len(s) > l:
      return s
   else:
      diferencia = l - len(s)
      return_value = ''
      for i in range(0, diferencia):
         return_value += ' '
      return_value += s
      return return_value
      
s = "Hola que tal"

print ajustar_derecha(s)

moraleja: no te compliques tanto, vete a lo sencillo
Avatar de Usuario
Juanxo
 
Mensajes: 437
Registrado: Sab Ene 31, 2009 2:34 am
Ubicación: Madrid(España)

Re: ayuda con un ejercicio de phyton!!gracias

Notapor alfredo23 » Sab Nov 06, 2010 3:17 pm

ya pero con la funcion que tu has introducido no se ajusta a la derecha sale siempre "s" tal y como se introduce . yo quisiera saber porque no se puede ejecutar esto en python o si hay alguna forma de lograr q se ejecute, para q la cadena "s" salga ajustada a la derecha , muchas gracias...
diferencia = l - longitud_cadena
espacio = ' '
return( espacio*diferencia + s)
alfredo23
 
Mensajes: 12
Registrado: Jue Nov 04, 2010 8:49 pm

Re: ayuda con un ejercicio de phyton!!gracias

Notapor Juanxo » Sab Nov 06, 2010 4:53 pm

creo que no has entendido lo que te piden, o no lo entiendo yo...

quieren que crees una cadena de longitud l, en el que todo sean espacios (l - s espacios) y al final esté "s". Creo que tu entiendes ajustada a la derecha de la pantalla
Avatar de Usuario
Juanxo
 
Mensajes: 437
Registrado: Sab Ene 31, 2009 2:34 am
Ubicación: Madrid(España)

Re: ayuda con un ejercicio de phyton!!gracias

Notapor alfredo23 » Sab Nov 06, 2010 6:08 pm

haber claro q lo entiendo pero en tu funcion da lo mismo poner S="HOLA QUE TAL" que s="HOLA" que la distancia a la que aparecen siemprees la misma y eso no puede ser porque el espacio a la izquierda cambia en funcion de l-len(S). esio es lo q no funciona en tu escrito
alfredo23
 
Mensajes: 12
Registrado: Jue Nov 04, 2010 8:49 pm

Re: ayuda con un ejercicio de phyton!!gracias

Notapor Juanxo » Sab Nov 06, 2010 7:33 pm

Imagen

Esto es lo que me sale a mi con las dos frases que comentas... en principio yo eso es lo que entiendo que tiene que salir, pero igual me equivoco.

Si pudieras subir una imagen o algo con el resultado que esperas tu que salga quizás te podamos ayudar más


EDITO: ya he resuelto el problema de la imagen
Avatar de Usuario
Juanxo
 
Mensajes: 437
Registrado: Sab Ene 31, 2009 2:34 am
Ubicación: Madrid(España)

Re: ayuda con un ejercicio de phyton!!gracias

Notapor alfredo23 » Sab Nov 06, 2010 7:44 pm

no me sale ya imagen pero seria algo asi:
Ejemplo de uso:
>>>
>>> s="HOLA QUE TAL"
>>> print(ajusta_derecha(s))
HOLA QUE TAL

>>> s="HOLA"
>>> print(ajusta_derecha(s))
HOLA
alfredo23
 
Mensajes: 12
Registrado: Jue Nov 04, 2010 8:49 pm

Re: ayuda con un ejercicio de phyton!!gracias

Notapor carlostex » Sab Nov 06, 2010 8:22 pm

alfredo23 escribió:>>> s="HOLA QUE TAL"
>>> print(ajusta_derecha(s))
HOLA QUE TAL

>>> s="HOLA"
>>> print(ajusta_derecha(s))
HOLA


Ese ejemplo no hace lo que te piden, solo se imprime la cadena de manera normal como si no estuvieras haciendo nada en la función, lo que yo entiendo que te piden es:
entrada: Hola
salida: Hola
(16 espacios)+4=20
que es lo que hace el código de juan.
El conocimiento de unos es conocimiento de todos.
Avatar de Usuario
carlostex
 
Mensajes: 249
Registrado: Mar Jul 14, 2009 4:13 am
Ubicación: mexico


Volver a Sobre lenguajes de programación

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado