Dovrei definire una funzione pad_with_n_chars(s, n, c)
che prende una stringa , un intero 'n' e un carattere 'c' e restituisce una stringa composta da 's' riempita con 'c' per creare una stringa con 'centrato' di lunghezza 'n'. Ad esempio, pad_with_n_chars(”dog”, 5, ”x”)
deve restituire la stringa "xdogx
".Come eseguire il pad con n caratteri in Python
risposta
Con Python2.6 o superiore, non è necessario definire la propria funzione; il metodo di stringa format può fare tutto questo per voi:
In [18]: '{s:{c}^{n}}'.format(s='dog',n=5,c='x')
Out[18]: 'xdogx'
Bello e conciso! –
Questa è pura magia! –
+1. Si noti che il formato è piuttosto recente e probabilmente non funzionerà con versioni legacy di Python. –
Sembra che tu sei solo alla ricerca di puntatori, non una soluzione completa. Così qui è uno:
È possibile moltiplicare le stringhe in Python:
>>> "A" * 4 'AAAA'
Inoltre vorrei usare i nomi migliori, invece di s userei testo, che è molto più chiara. Anche se il tuo attuale professore (suppongo tu stia imparando Python all'università) usa tali abbreviazioni orribili.
La risposta accettata è elegante e concisa, ma Penso che questo sia molto più versatile e facile da ricordare. – orodbhen
beh, poiché questa è una domanda sui compiti a casa, probabilmente non capirai cosa succede se usi le "batterie" che sono incluse.
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")
In alternativa, quando non si sta più frequentando la scuola.
>>> "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']
penso che si dovrebbe essere in grado di individuare un primo indizio qui ...
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ì basta usare ljust o rjust a sinistra-giustificare (pad a destra) e il tasto destro del giustificano (pad a sinistra) con qualsiasi carattere specificato.
Ad esempio ... fare '111' una stringa 5 cifre imbottita con 'x'es
In Python3.6:
>>> '111'.ljust(5, 'x')
111xx
>>> '111'.rjust(5, 'x')
xx111
- 1. (n) pad curses in python non funziona
- 2. Galleggiante pad python
- 3. Come posso eseguire il pad di parte di una stringa con spazi, in Perl?
- 4. n ** n ** n euristica in Python
- 5. Python strip con \ n
- 6. numeri pad varchar con 0s in db2
- 7. Sostituzione "\ r \ n" con "\ n"
- 8. Modificare i prossimi N caratteri in VIM
- 9. MySQL: come applicare il codice postale sul pad con "0"?
- 10. come eseguire il pad dei dati prima della crittografia con bouncyCastle
- 11. Come eseguire il ciclo parallelo in Python?
- 12. Perché il pad string.format di Python non può essere eseguito con "\ x00"?
- 13. Vim regex sostituire con n caratteri
- 14. Quando è hash (n) == n in Python?
- 15. Matrice di pad con zeri apertiCV
- 16. Stringa sinistra pad e pad destra (pad centrale)
- 17. Come eseguire il cast dell'oggetto in Python
- 18. In Python, come posso creare una stringa di n caratteri in una riga di codice?
- 19. Come eseguire il file python in linux
- 20. Come eliminare i pad in etherpad-lite
- 21. Iterare su una stringa 2 (o n) caratteri alla volta in Python
- 22. Come forzare la stringa Ruby in n caratteri
- 23. Pad con zeri a larghezza comune
- 24. Come eseguire il loop dei file con Python?
- 25. Come eseguire Python in Komodo
- 26. Come usare espressioni regolari con caratteri opzionali in python?
- 27. C# interruzione di riga ogni n caratteri
- 28. Come eseguire il controllo ortografico di python docstring con emacs?
- 29. Perché il pad GCC funziona con gli NOP?
- 30. Come eseguire iterazioni sui primi n elementi di una lista?
La soluzione reale al problema è sicuramente importante. Ma altrettanto importante è il rilevamento e la gestione di input errati. Pensa ai tuoi 3 argomenti di input, e vedi se riesci a prevenire i valori di ciascuno di essi potrebbero causare problemi per la tua funzione 'pad_with_n_chars'. – PaulMcG