2012-05-08 13 views
-2

私はすべての単語を読み上げたいテキストファイルの中に単語リストを持っています。たとえば、「He​​llo」という単語がある場合、「5E11O」に変わります。言い換えれば、プログラムは単語内のすべての文字を自動的に置き換えることができるはずです。Pythonでleetを実行するには?

これは可能ですか?ありがとう

+0

私は実際に「セロ」ではなく、「HELLO」、J0は言うことをかなり確信して変換することであると思います。 – detly

+1

はい、可能です。あなたはすでにpythonを知っていますか? – Teak

+0

まだ私はまだ初心者ですから、まだ残念ながらそれはあまり知られていませんが、私は学びたいと思っています:) – Matthew

答えて

3

それは完全に定義する方法に依存します。

Hello - >5E11Oを翻訳するには、H->5, e->E, l->1, l->1, o->0のように各文字の単純な1:1変換であれば難しくありません。この文字を文字変換に定義するには、string.maketransを使用します。

hacker-lingo - >l33tsp33kのように、より完全なleet orthographiesをサポートしたい場合は、さらに難しくなります。これには文字数の短縮も含まれます。

さまざまなソースコードの取り組みがあります。試してみてください。靴が合うかどうかを確認してください。私はリーレットがまだISO標準化を行っていないと考えています...; - }

2

ここでは、一連の1対1の交換を連続して行う方法の1つです。 letter-for-letter変換の前に "全体の単語"変換がどのように適用されるかに注意してください。

replacements = (('hacker','haxor'), ('elite','eleet'), ('a','4'), ('e','3'), 
       ('l','1'), ('o','0'), ('t','+')) 
my_string = "I am an elite hacker." 
new_string = my_string 
for old, new in replacements: 
    new_string = new_string.replace(old, new) 

print (new_string) 

ができます:

I 4m 4n 3133+ h4x0r. 

興味深い拡張は、いくつかの代替のために複数の選択肢を可能にすることです。たとえば、文字lは、数字1またはパイプ記号|のいずれかとしてレンダリングできます。

0

私はeasiesのキャラクタを作り、それが

from utilitybelt import change_charset 

origspace = "abcdefghijklmnopqrstuvwxyz" 
keyspace = "abcd3fgh1jklmnopqr57uvwxyz" 

print(change_charset("leetspeak",origspace, keyspace)) 

#l3375p3ak 
関連する問題