Python八卦符编码 base8-bagua-py

闲来无事逛了下github,发现一个有意思的项目

传送门 base8-bagua

心血来潮,用python也实现了一个

符号卦名拼音8进制数
qián0
duì1
2
zhèn3
xùn4
kǎn5
gèn6
kūn7

 

# 编码
#
# 文本转为8进制数组
#
def strTo8bArr(str):
    # 返回数组
    arr = []
    # 将字符串转为byte数组
    nByte = bytes(str,encoding='utf-8')
    # 遍历byte数组 转为八进制
    for n2 in nByte:
        arr.append(oct(n2))

    return arr

#
# 八进制转八卦符
#
def toBaGua(strArr):
    code = {'0': '☰',  # 乾
            '1': '☱',  # 兑
            '2': '☲',  # 离
            '3': '☳',  # 震
            '4': '☴',  # 巽
            '5': '☵',  # 坎
            '6': '☶',  # 艮
            '7': '☷',  # 坤
            }

    # 返回八卦符
    returnStr = ''


    for b in strArr:
        # 去掉 0o
        bStr = b.replace('0o','')
        # 如果小于3位,前面补0
        if len(bStr) < 3:
            bStr = '0'+bStr

        for s in bStr:
            returnStr += code[s]

    return returnStr
# 解码
#
# 8进制转文本
#
def bArrToStr(bArr):

    nByte = b''
    for b in bArr:
        nByte += chr(int(b,base=8)).encode('raw_unicode_escape')

    return bytes.decode(nByte)


#
# 八卦符转八进制
#
def to8bArr(baguaStr):
    code = {'☰':'0',  # 乾
            '☱':'1',  # 兑
            '☲':'2',  # 离
            '☳':'3',  # 震
            '☴':'4',  # 巽
            '☵':'5',  # 坎
            '☶':'6',  # 艮
            '☷':'7',  # 坤
            }

    bArr = []

    temp = []
    # 把八卦符转为8进制数字
    for s in baguaStr:
        temp.append(code[s])

    tempStr = ''
    # 数字3个一组 组合回八进制
    for i in range(len(temp)):

        tempStr += temp[i]

        if i % 3 == 2:
            bArr.append('0o'+tempStr)
            tempStr = ''

以下为输出结果

 

 

没啥技术含量,单纯的觉得好玩,有兴趣的朋友可以玩一下

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值