Python - Cadena de caracteres

   
Vista:

Cadena de caracteres

Publicado por oliver (1 intervención) el 24/05/2017 09:35:57
Hola, comienzo recién a dar mis primeros pasos en Python y hay algo que me resulta muy complicado hacer y es lo sgte: deseo que de una palabra de una lista mostrar solo el primer y ultimo caracter y las letras de en medio mostrar guiones bajos( _ ). para realizar una versión muy básica del ahorcado....muchas gracias
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

Cadena de caracteres

Publicado por CpA (33 intervenciones) el 24/05/2017 10:58:51
Se puede hacer de muchas formas... a mí, lo más fácil que se me ocurre es:

1
2
3
lista=["Magdalena","Galleta","Bizcocho","Chocolate","Colacao"]
for cadena in lista:
    print("{}{}{}".format(cadena[0],"-"*(len(cadena)-2),cadena[-1]))


Básicamente recorro la lista, y por cada cadena (cadena) imprimo:
El primer carácter => cadena[0]
Tantos - como la longitud de la cadena - 2 (el primer y último carácter).
El último carácter => cadena[-1]
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 [abZeroX]

Cadena de caracteres

Publicado por [abZeroX] (61 intervenciones) el 25/05/2017 00:31:23
Hola prueba con esto:
1
2
3
4
5
6
7
8
9
10
11
12
words = ['Fútbol', 'Tenis', 'Basketball', 'Ping Pong', 'Boxeo']
 
for word in words:
    word = word.strip()
    letters = word[1:-1]
    guiones = ''
    for letter in letters:
        if letter == ' ':
            guiones += '  '
        else:
            guiones += ' _ '
    print('{0} {1} {2}'.format(word[0], guiones, word[-1]))
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 kip

Cadena de caracteres

Publicado por kip (227 intervenciones) el 25/05/2017 22:37:08
Hola, puedes usar expresiones regulares para ayudarte mejor:

1
2
3
4
5
6
7
8
9
import re
 
def hiddenWords(words):
    hideWord = lambda word: '%s%s%s' % (word[0], re.sub(r'\w', ' _ ', word[1:-1]), word[-1])
    return list(map(hideWord, words))
 
words = ['Palabra', 'Otra palabra', 'Palabra', 'Repetida']
 
print "\n".join(hiddenWords(words))

O por compresion de listas:

1
2
3
4
5
6
7
def hiddenWords(words):
    hideWord = lambda word: '%s%s%s' % (word[0],''.join([' ' if letter.isspace() else ' _ ' for letter in word[1:-1]]), word[-1])
    return list(map(hideWord, words))
 
words = ['Palabra', 'Otra palabra', 'Palabra', 'Repetida']
 
print "\n".join(hiddenWords(words))

Ambas muestran:
1
2
3
4
P _  _  _  _  _ a
O _  _  _   _  _  _  _  _  _ a
P _  _  _  _  _ a
R _  _  _  _  _  _ a

Si usas Python 3 debes modificar los print agregandoles unos ().

Estudia si puedes los aportes que te han dado.
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

Cadena de caracteres

Publicado por Damian (5 intervenciones) el 26/05/2017 19:09:47
Que tal, no estoy con el phyton disponible pero quizas te ayude un poco:
1
2
3
4
5
6
7
palabra = "arbol"
nueva_palabra = ""
for i in len(palabra):
       if i == 0 or i == (len(palabra)-1):
            nueva_palabra = nueva_palabra + palabra
       else:
             nueva_palabra = nueva_palabra + "_"

Epero te sirva de algo :D
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
Revisar política de publicidad