Una cadena de caracteres permite almacenar un conjunto de caracteres. Su funcionamiento es similar a una tupla.
Para inicializar un string utilizamos el operador de asignación.

nombre='Juan Pablo'

Podemos utilizar las comillas simples o dobles para su inicialización:

mail='jose@gmail.com'

o

mail="jose@gmail.com"

Para conocer el largo de un string podemos utilizar la función len:

print len(mail)

Para acceder a un caracter particular del string lo hacemos indicando un subíndice entre corchetes:

print mail[0]  #Imprimimos el primer caracter

El lenguaje Python nos permite rescatar una "porción" de un string con la misma sintaxis que trabajamos las tuplas:

nombre='Jose Maria'
print nombre[1:4]  #ose
print nombre[:4] #Jose
print nombre[5:] #Maria

Los string son inmutables, es decir que no podemos modificar su contenido luego de ser inicializados:

titulo='Administracion'
titulo[0]='X' # Esto produce un error 

Esto no significa que no podemos utilizar la variable para que referencie a otro string:

nombre='Jose'
print nombre
nombre='Ana'
print nombre

Para concatenar string Python permite utilizar el operador +.
Si tenemos tres string y queremos almacenar sus contenidos en un cuarto string podemos codificarlo de la siguiente manera:

cadena1='uno'
cadena2='dos'
cadena3='tres'
total=cadena1+cadena2+cadena3
print total #unodostres

También Python define el operador * para los string. El resultado de multiplicar un string por un entero es otro string que repite el string original tantas veces como indica el número.

#si queremos un string con 80 caracteres de subrayado, la forma más sencilla es utilizar la siguiente expresión:
separador='_'*80
print separador

Los operadores relacionales definidos para los string son:

> Mayor 
>= Mayor o igual 
< Menor 
<= Menor o igual
== Igual
!= Distinto 

Si queremos saber si un string es mayor alfabéticamente que otro utilizamos el operador >

nombre1='CARLOS'
nombre2='ANABEL'
if nombre1>nombre2:
    print nombre1+' es mayor alfabéticamente que '+nombre2

si queremos saber si dos variables tienes en mismo contenido:

nombre1='CARLOS'
nombre2='CARLOS'
if nombre1==nombre2:
   print 'Las dos variables tienen el mismo contenido:'+nombre1

Problema resuelto

Elaborar una función que reciba un string y retorne la cantidad de vocales que tiene.



Problema Propuesto

Elaborar las siguientes funciones:
- Una función que reciba un string y nos retorne el primer caracter.
- Una función que reciba un apellido y un nombre, y nos retorne un único string con el apellido y nombre concatenados y separados por una coma.
- Una función que reciba dos string y nos retorne el que tiene menos caracteres.


def primercaracter(cadena):
    return cadena[0]

def concatenar(apellido,nombre):
    return apellido+','+nombre

def menor(cadena1,cadena2):
    if len(cadena1)<len(cadena2):
        return cadena1
    else:
        return cadena2


cad='Hola Mundo'
print 'Primer caracter de '+cad+' es '+primercaracter(cad)
print '<br>'
nom='juan'
ape='rodriguez'
print 'Apellido y nombre concatenados:'+concatenar(ape,nom)
cad1='Hola'
cad2='Fin'
print '<br>'
print 'De: '+cad1+' y '+cad2+' tiene menos caracteres '+menor(cad1,cad2)
    
    
Ver solución