Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: .:WindHack:. en 20 Septiembre 2010, 22:59 pm



Título: [Python] Gira una cadena de texto 180º con FlipString
Publicado por: .:WindHack:. en 20 Septiembre 2010, 22:59 pm
(http://daw-labs.com/wp-content/uploads/2010/09/FlipString.png)

FlipString es un script desarrollado en Python que permite girar la cadena que se pase como parámetro 180º.

Por el momento sólo se ha probado en GNU/Linux, así que no puedo establecer a ciencia cierta cómo se comporta en otros entornos.

Su funcionamiento es sencillo, tan sólo se debe pasar como parámetro el texto que deseamos invertir. Por ejemplo:

Código
  1. windhack@windhack-desktop:~$ python 'flipstring.py' Hola

Nos devuelve como resultado: ɐloɥ
Para convertir una cadena de texto más larga y que contenga espacios se deben usar las comillas dobles ("").

Aquí adjunto el código fuente.

Código
  1. #!/usr/bin/python
  2. # -*- coding: utf-8 -*-
  3. # FlipString.py - DaW - Labs & Cibernodo
  4. # Autor: .:WindHack:.
  5. # 20/09/2010 - www.daw-labs.com & www.cibernodo.net
  6. # Puede usar, modificar y redistribuir éste código
  7. # siempre y cuando respete los derechos de autor.
  8.  
  9. from sys import argv
  10.  
  11. # Diccionario de equivalencia en caracteres.
  12.  
  13. FlipCharset = { 'a' :u'\u0250',
  14.                'b' :'q',
  15.                'c' :u'\u0254',
  16.                'd' :'p',
  17.                'e' :u'\u01DD',
  18.                'f' :u'\u025F',
  19.                'g' :u'\u0183',
  20.                'h' :u'\u0265',
  21.                'i' :u'\u0131',
  22.                'j' :u'\u027E',
  23.                'k' :u'\u029E',
  24.                'l' :'l',
  25.                'm' :u'\u026F',
  26.                'n' :'u',
  27.                'o' :'o',
  28.                'p' :'d',
  29.                'q' :'b',
  30.                'r' :u'\u0279',
  31.                's' :'s',
  32.                't' :u'\u0287',
  33.                'u' :'n',
  34.                'v' :u'\u028C',
  35.                'w' :u'\u028D',
  36.                'x' :'x',
  37.                'y' :u'\u028E',
  38.                'z' :'z',
  39.                ' ' :' ',
  40.                '1' : '\u21C2',
  41.                '2' : '\u1105',
  42.                '3' : '\u1110',
  43.                '4' : '\u3123',
  44.                '5' : '\u078E',
  45.                '6' : '9',
  46.                '7' : '\u3125',
  47.                '8' : '8',
  48.                '9' : '6',
  49.                '0' : '0',
  50.                '.' : '\u02D9',
  51.                ',' : "\'",
  52.                ';' : '\u061B',
  53.                '!' : '¡',
  54.                '¡' : '!',
  55.                '?' : '¿',
  56.                '¿' : '?',
  57.                '[' : ']',
  58.                ']' : '[',
  59.                '(' : ')',
  60.                ')' : '(',
  61.                '{' : '}',
  62.                '}' : '{',
  63.                '<' : '>',
  64.                '>' : '<',
  65.                '_' : '\u203E' }
  66.  
  67. # Función para girar el texto.
  68.  
  69. def FlipString(String):
  70.    Result = ''
  71.    String = String.lower()
  72.    for i in String:
  73.        Result += FlipCharset[i]
  74.    return Result[::-1]
  75.  
  76. def __main__():
  77.    __Help__ =  '''
  78. _____ _ _      ____  _        _
  79. |  ___| (_)_ __/ ___|| |_ _ __(_)_ __   __ _
  80. | |_  | | | '_ \___ \| __| '__| | '_ \ / _` |
  81. |  _| | | | |_) |__) | |_| |  | | | | | (_| |
  82. |_|   |_|_| .__/____/ \__|_|  |_|_| |_|\__, |
  83.          |_|                          |___/
  84.  
  85. © 2010. DaW - Labs & Cibernodo
  86.  
  87. Modo de uso:
  88.    FlipString.py "Texto"
  89.    '''
  90.    try:
  91.        HasText = argv[1]
  92.        print '''
  93. %s
  94.              ''' % FlipString(HasText)
  95.    except:
  96.        print __Help__
  97.  
  98. if __name__ == '__main__':
  99.    __main__()