ハミング距離は、2つの等しい長さの文字列の間で異なる文字の数を表す指標です。Pythonを使ってハミング距離を計算する方法は簡単です。まず、2つの文字列を比較するために、zip()関数を使って文字列をペアにします。次に、異なる文字を数えるために、sum()関数と条件式を使います。例えば、以下のように実装できます。

def hamming_distance(s1, s2):
    pairs = zip(s1, s2)
    differences = sum(ch1 != ch2 for ch1, ch2 in pairs)
    return differences

これで、2つの文字列のハミング距離を計算する関数ができました。この関数は、以下のように使用できます。

>>> hamming_distance('abc', 'xyz')
3
>>> hamming_distance('karolin', 'kathrin')
3
>>> hamming_distance('1011101', '1001001')
2

Pythonでシード値に基づくランダムウォークを生成する

ランダムウォークは、ある点から始まり、ランダムな方向に移動することで生成されるデータセットです。Pythonのrandomモジュールを使って、シード値に基づくランダムウォークを生成することができます。以下は、ランダムウォークを生成する例です。

import random

def random_walk(n):
    x, y = 0, 0
    for i in range(n):
        dx, dy = random.choice([(0,1), (0,-1), (1,0), (-1,0)])
        x += dx
        y += dy
    return (x, y)

この関数は、n回のステップを実行し、ランダムな方向に移動することで、座標のタプルを返します。例えば、以下のように使用できます。

>>> random_walk(10)
(1, 1)
>>> random_walk(100)
(2, 4)
>>> random_walk(1000)
(-26, 18)

PythonでUnicodeの全角スペースを除去する

Pythonでは、Unicode文字列を扱うことができます。Unicode文字列には、半角スペースと全角スペースがありますが、テキスト処理のためには、通常、全角スペースを半角スペースに変換する必要があります。以下は、PythonでUnicodeの全角スペースを除去する方法です。

text = 'こんにちは 世界!'
text = text.replace('\u3000', ' ')

この例では、replace()メソッドを使って、Unicodeの全角スペース(U+3000)を 半角スペースに置換しています。これで、text変数には、「こんにちは 世界!」という文字列が格納されます。

Pythonで独自のマジックコマンドを定義する

IPythonは、Jupyterノートブックなどで使用されるPythonの対話型シェルです。IPythonには、独自のマジックコマンドを定義する機能があります。以下は、独自のマジックコマンドを定義するPythonの例です。

from IPython.core.magic import register_line_magic

@register_line_magic
def mymagic(line):
    print("This is my magic command: " + line)

この例では、IPythonのマジックコマンドを定義するために、register_line_magic()デコレータを使って、mymagic()関数を登録しています。mymagic()関数は、渡された引数を使ってメッセージを表示します。以下は、このマジックコマンドを使用する例です。

In [1]: %mymagic Hello, world!
This is my magic command: Hello, world!

これで、独自のマジックコマンドが定義されました。