某問題で、

Pythonには chrっていう関数があるのになぜ unchrがないんだ!っておもったり、

さっかくなら数値を2進数にして^とか | とか & とかを簡単に出来ないかなぁって思って作った。

#!usr/env/python

#chr's converse
unchr = lambda(raw): bin(ord(raw))[2:]

#unchr's test
print("{}\n{}".format(unchr('A'),unchr('z')))

#make chrr
def chrr(a,b):
    string = ""
    for i in range(7):
        string += str(int(unchr(a)[i]) ^ int(unchr(b)[i]))
    return string

#chrr's test
print("{}").format(chrr('A','z'))

#make last function 
#lsfn = lambda(a,b): chr(int(chrr(a,b),2))
def lsfn(a,b):
    s = int(chrr(a,b),2)
    return chr(s)

#lsfn(last function)'s test

#good example
print lsfn('a','Z')

#bad example 
print lsfn('o','u')

ソースの汚さはヤバいけど、とりあえず動く。
ちなみに下のbad exampleっていうのは なぜか空白になってしまい、
何も出てこない。なんでだろうか。予測としてはそんな文字 asciiにねぇよって感じかなって
思いますけど、どうなんでしょうか。

広告を非表示にする