首页 > 解决方案 > 需要帮助转换这个数字系统

问题描述

所以我应该将巴比伦字符转换为数字值,以便:

"<" = 10
"T" = 1
"\" = 0

当我输入这些值时,它应该添加这些数字的总和,所以 babylonian( "TTT")会相等3,因为有 3 个“1”值。

到目前为止,我在下面有这段代码,但我似乎无法得到总和,而只是得到个别数字。

def babylonian(symbols) :
    lst = []
    for str in symbols:
        sum = 0
        for i in str:
            if i == "<":
                sum = sum + 10
            elif i == "T":
                sum = sum + 1
            elif i == "\\":
                sum = sum + 0
        lst.append(sum)
    return lst

标签: pythonpython-2.7

解决方案


为什么不使用字典来保存映射?你的代码会变得更简单

def babylonian(symbols) :
    sum = 0
    values = {'<' : 10, 'T': 1 , '\\': 1}
    for str in symbols:
        sum += values[str]
    return sum


print(babylonian( "TTT"))

推荐阅读