# ---------------------------------------------------------------
#  Este programa lee un string (cadena) de caracteres e invierte su orden.
#
#    El string puede contener espacios, pero no puede tener saltos de linea
# ---------------------------------------------------------------

import platform
def str_input(str=''):
    py_version = platform.python_version() # fetch the python version currently in use
    if int(py_version[0]) == 2:
       return raw_input(str) # input string in python2
    if int(py_version[0]) == 3:
       return input(str) # input string in python3


#try: input = raw_input    # Esta es una opcion alternativa a la anterior para compatibilizar versiones
#except NameError: raw_input = input

def LeeString():
    t = str_input('Introduzca string : \n')
    #t = input('Introduzca string : \n')   # opcion alternativa para compatibilizar versiones
    n = len(t)
    return t,n

def replace_at(cadena, idx, char):
  return cadena[:idx] + char + cadena[idx+1:]

def InvierteString(t,n):
    for i in range(int(n/2.)):
        tp=t[i]
        t=replace_at(t,i,t[n-1-i])
        t=replace_at(t,n-1-i,tp)
    return t



(t,n) = LeeString()
print('String leido: {:s}'.format(t))
t = InvierteString(t,n)
print('String invertido: {:s}'.format(t))





