Debo definir una función que toma una cadena 's', un número entero 'n', y un carácter 'c' y devuelve una cadena que consta de 's' rellenada con 'c' para crear una cadena con una 's' centrada de longitud 'n'. Por ejemplo, pad_with_n_chars(”dog”, 5, ”x”)
debe devolver la cadena "xdogx
".Cómo rellenar con n caracteres en Python
Respuesta
Con Python2.6 o superior, no es necesario definir su propia función; el método de cadena format puede hacer todo esto para usted:
In [18]: '{s:{c}^{n}}'.format(s='dog',n=5,c='x')
Out[18]: 'xdogx'
¡Agradable y conciso! –
¡Eso es pura magia! –
+1. Tenga en cuenta que el formato es bastante reciente y probablemente no funcionará con las versiones heredadas de Python. –
Parece que está buscando solamente punteros, no es una solución completa. Así que aquí está uno:
Puede multiplicar las cadenas en Python:
>>> "A" * 4 'AAAA'
Además me gustaría utilizar mejores nombres, en lugar de s que haría uso de texto, que es mucho más clara. Incluso si tu profesor actual (supongo que estás aprendiendo Python en la universidad) usa esas horribles abreviaturas.
La respuesta aceptada es elegante y concisa, pero Creo que este es mucho más versátil y fácil de recordar. – orodbhen
bueno, ya que esta es una pregunta para hacer en casa, probablemente no entiendas lo que está pasando si usas las "baterías" que están incluidas.
def pad_with_n_chars(s, n, c):
r=n - len(s)
if r%2==0:
pad=r/2*c
return pad + s + pad
else:
print "what to do if odd ? "
#return 1
print pad_with_n_chars("doggy",9,"y")
Alternativamente, cuando ya no esté estudiando.
>>> "dog".center(5,"x")
'xdogx'
>>> dir(string)
['Formatter',
'Template',
'_TemplateMetaclass',
'__builtins__',
'__doc__',
'__file__',
'__name__',
'__package__',
'_float',
'_idmap',
'_idmapL',
'_int',
'_long',
'_multimap',
'_re',
'ascii_letters',
'ascii_lowercase',
'ascii_uppercase',
'atof',
'atof_error',
'atoi',
'atoi_error',
'atol',
'atol_error',
'capitalize',
'capwords',
'center',
'count',
'digits',
'expandtabs',
'find',
'hexdigits',
'index',
'index_error',
'join',
'joinfields',
'letters',
'ljust',
'lower',
'lowercase',
'lstrip',
'maketrans',
'octdigits',
'printable',
'punctuation',
'replace',
'rfind',
'rindex',
'rjust',
'rsplit',
'rstrip',
'split',
'splitfields',
'strip',
'swapcase',
'translate',
'upper',
'uppercase',
'whitespace',
'zfill']
creo que debe ser capaz de detectar una primera pista aquí ...
print '=' * 60
header = lambda x: '%s%s%s' % ('=' * (abs(int(len(x)) - 60)/2),x,'=' * (abs(int(len(x)) - 60)/2))
print header("Bayors")
sí sólo tiene que utilizar ljust o rjust a la izquierda justificar (pad derecho) y justificar a la derecha (pad a la izquierda) con cualquier personaje dado.
Por ejemplo ... para hacer '111' una cadena de 5 dígitos rellena con 'x'es
En Python3.6:
>>> '111'.ljust(5, 'x')
111xx
>>> '111'.rjust(5, 'x')
xx111
- 1. Cómo rellenar NSString con espacios?
- 2. ¿Cómo rellenar argumentos posicionales específicos con parcial en python?
- 3. ¿Cómo rellenar los campos de caracteres en SAS?
- 4. Vim regex reemplazar con n caracteres
- 5. Tira de Python con \ n
- 6. En Python, ¿cómo creo una cadena de n caracteres en una línea de código?
- 7. Cambie los siguientes N caracteres en VIM
- 8. Algunos incorporados para rellenar una lista en python
- 9. regex para n caracteres o al menos m caracteres
- 10. salto de línea C# cada n caracteres
- 11. ¿Cómo puedo dibujar texto con diferentes trazos y rellenar colores en las imágenes con python?
- 12. Reemplazando "\ r \ n" por "\ n"
- 13. ¿Cómo usar la expresión regular con caracteres opcionales en python?
- 14. hacer una cadena de N caracteres
- 15. ¿Cómo rellenar una cadena binaria con ceros?
- 16. Caracteres de codificación de Python con urllib.quote
- 17. Python - Pyrersing caracteres Unicode
- 18. div Rellenar con el texto
- 19. Eliminando N primeros caracteres de la cadena
- 20. ¿Cómo convertir caracteres escapados en Python?
- 21. Cómo comparar los últimos n caracteres de una cadena con otra cadena en C
- 22. En Python 2.4, ¿cómo puedo quitar los caracteres después de ';'?
- 23. ¿Cómo se puede rellenar previamente un formulario de Python Formish?
- 24. ¿Cómo elimino los últimos n caracteres de una cadena?
- 25. PowerShell: cómo limitar la cadena a N caracteres?
- 26. Extrayendo los últimos n caracteres de una cadena en R
- 27. Python 3 smtplib envía con caracteres Unicode
- 28. puede truncar una cadena multibyte en n caracteres
- 29. Poner char en una cadena java para cada N caracteres
- 30. Rellenar formularios PDF con PHP
La solución real al problema es sin duda importante. Pero igualmente importante es la detección y el manejo de entradas erróneas. Piense en sus 3 argumentos de entrada, y vea si puede anular qué valores de cada uno causarían problemas para su función 'pad_with_n_chars'. – PaulMcG