por - Analizando la entrada de la cadena hasta que alcance una determinada letra en Python
python separar string por caracter (4)
Necesito ayuda para tratar de escribir una cierta parte de un programa. La idea es que una persona ingrese un montón de galimatías y el programa lo lea hasta que alcance un "!" (signo de exclamación) así, por ejemplo:
input("Type something: ")
Tipos de personas: wolfdo65gtornado! Salmontiger223
Si le pido al programa que imprima la entrada, solo debería imprimir wolfdo65gtornado
y cortar cualquier cosa una vez que llegue al "!" El resto del programa está analizando y contando las letras, pero esas partes ya sé cómo hacerlo. Solo necesito ayuda con la primera parte. He estado tratando de mirar el libro pero parece que me estoy perdiendo algo.
Estoy pensando, tal vez utilizando un bucle for
y luego restringiéndolo, pero no puedo averiguar cómo hacer que la entrada de la cadena imputada al azar se analice para un determinado carácter y luego deshacerme del resto.
Si pudieras ayudar, lo apreciaré de verdad. ¡Gracias!
El método str.partition()
lo hará por usted. A diferencia de str.split()
, no se molestará en cortar el resto de str
en diferentes str
s.
text = raw_input("Type something:")
left_text = text.partition("!")[0]
Prueba esto:
s = "wolfdo65gtornado!salmontiger223"
m = s.index(''!'')
l = s[:m]
Quieres itertools.takewhile()
.
>>> s = "wolfdo65gtornado!salmontiger223"
>>> ''-''.join(itertools.takewhile(lambda x: x != ''!'', s))
''w-o-l-f-d-o-6-5-g-t-o-r-n-a-d-o''
>>> s = "wolfdo65gtornado!salmontiger223!cvhegjkh54bgve8r7tg"
>>> i = iter(s)
>>> ''-''.join(itertools.takewhile(lambda x: x != ''!'', i))
''w-o-l-f-d-o-6-5-g-t-o-r-n-a-d-o''
>>> ''-''.join(itertools.takewhile(lambda x: x != ''!'', i))
''s-a-l-m-o-n-t-i-g-e-r-2-2-3''
>>> ''-''.join(itertools.takewhile(lambda x: x != ''!'', i))
''c-v-h-e-g-j-k-h-5-4-b-g-v-e-8-r-7-t-g''
>>> s = "wolfdo65gtornado!salmontiger223"
>>> s.split(''!'')[0]
''wolfdo65gtornado''
>>> s = "wolfdo65gtornadosalmontiger223"
>>> s.split(''!'')[0]
''wolfdo65gtornadosalmontiger223''
Sin embargo, si no encuentra un carácter " ! ", solo tomará el texto completo. si desea emitir un error si no coincide con " ! ", puede hacerlo de la siguiente manera:
s = "something!something"
if "!" in s:
print "there is a ''!'' character in the context"
else:
print "blah, you aren''t using it right :("