Los índices comienzan por cero.
ciudad = "Buenos Aires"
print(ciudad[0]) # B se comienza por el índice 0
print(ciudad[1]) # u
print(ciudad[2]) # e
print(ciudad[3]) # n
print(ciudad[4]) # o
print(ciudad[5]) # s
print(ciudad[6]) #
print(ciudad[7]) # A
print(ciudad[8]) # i
print(ciudad[9]) # r
print(ciudad[10]) # e
print(ciudad[11]) # s
B u e n o s A i r e s
len(ciudad)
12
print(ciudad[-1]) # s
print(ciudad[-2]) # e
print(ciudad[-3]) # r
print(ciudad[-4]) # i
print(ciudad[-5]) # A
print(ciudad[-6]) #
print(ciudad[-7]) # s
print(ciudad[-8]) # o
print(ciudad[-9]) # n
print(ciudad[-10]) # e
print(ciudad[-11]) # u
print(ciudad[-12]) # B
s e r i A s o n e u B
print(ciudad[len(ciudad)-1]) # s
print(ciudad[-len(ciudad)]) # B
s B
print(ciudad[0:4]) # Buen
print(ciudad[:4]) # Buen
print(ciudad[7:10]) # Air
print(ciudad[:]) # Buenos Aires
print(ciudad[2:9:2]) # eo i
print(ciudad[-5:]) # Aires
Buen Buen Air Buenos Aires eo i Aires
#ciudad[30] # IndexError: string index out of range
ciudad[7:30] # Con slicing si funciona aunque nos salgamos del índice
'Aires'
ciudad[30:] # aquí no hay nada. No da error, devuelve cadena vacía
''
palabra = 'sogima'
print(palabra[::-1]) # reverso de una palabra
amigos
ciudad[:]
'Buenos Aires'
ciudad[:5] + ciudad[5:]
'Buenos Aires'
Si intentamos cambiar un carácter nos dará error.
#ciudad[0] = 'G' # TypeError: 'str' object does not support item assignment
Esto no es un gran inconveniente ya que podemos conseguirlo con slicing.
ciudad="G" + ciudad[1:]
ciudad
'Guenos Aires'