Ir al contenido principal

Entradas

Mostrando las entradas etiquetadas como Clasificación de caracteres

7.2. Longitud

La función len devuelve el número de caracteres de una cadena: 1: >>> fruta = "banana" 2: >>> len(fruta) 3: 6 Para obtener la última letra de una cadena puede sentirse tentado a probar algo como esto: 1: longitud = len(fruta) 2: ultima = fruta[longitud] # ERROR! Eso no funcionara. Provoca un error en tiempo de ejecucion IndexError:string index out of range . La razon es que no hay una sexta letra en " banana ". Como empezamos a contar por cero, las seis letras estan numeradas del 0 al 5. Para obtener el ultimo caracter tenemos que restar 1 de longitud: 1: longitud = len(fruta) 2: ultima = fruta[longitud-1] De forma alternativa, podemos usar índices negativos, que cuentan hacia atrás desde el final de la cadena. La expresion fruta[-1] nos da la ultima letra. fruta[-2] nos da la penultima, y así.

7.6. Las cadenas son inmutables

Es tentador usar el operador [] en el lado izquierdo de una asignación, con la intención de cambiar un carácter en una cadena. Por ejemplo: 1: saludo = "Hola, mundo" 2: saludo[0] = 'M' # ERROR! 3: print saludo En lugar de presentar la salida Mola, mundo, este codigo presenta el siguiente error en tiempo de ejecucion TypeError : object doesn't 1: support item 2: assignment. Las cadenas son inmutables, lo que signi¯ca que no puede cambiar una cadena existente. Lo mas que puede hacer es crear una nueva cadena que sea una variacion de la original: 1: saludo = "Hola, mundo" 2: nuevoSaludo = 'M' + saludo[1:] 3: print nuevoSaludo Aquí la solución es concatenar una nueva primera letra a una porción de saludo. Esta operación no tiene efectos sobre la cadena original.

7.10. Clasificación de caracteres

A menudo viene bien examinar un carácter y comprobar si es una letra mayúscula o minúscula, o si es un carácter o un dígito. El modulo string proporciona varias constantes que son útiles para estos menesteres. La cadena string.lowercase contiene todas las letras que el sistema considera como minúsculas. De forma similar, string.uppercase contiene todas las mayúsculas. Pruebe lo que sigue y vea que obtiene: 1: >>> print string.lowercase 2: >>> print 3: string.uppercase 4: >>> print string.digits Podemos usar estas constantes y find para clasificar caracteres. Por ejemplo, si find(lowercase, c) devuelve un valor que no sea -1 , entonces c es una minúscula: 1: def esMinuscula(c): 2: return find(string.lowercase, c) != -1 Alternativamente, podemos aprovecharnos del operador in , que determina si un carácter aparece en una cadena: 1: def esMinuscula(c): 2: return c in string.lowercase Como una alternativa mas, podemo...