python - 需要帮助转换这个数字系统
问题描述
所以我应该将巴比伦字符转换为数字值,以便:
"<" = 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
解决方案
为什么不使用字典来保存映射?你的代码会变得更简单
def babylonian(symbols) :
sum = 0
values = {'<' : 10, 'T': 1 , '\\': 1}
for str in symbols:
sum += values[str]
return sum
print(babylonian( "TTT"))
推荐阅读
- sql - 迭代 cte 中的随机值
- c# - 将父表单放在前面并维护来自子表单的列表计数
- html - 使用 window.print() 时是否可以将打印预览边距属性设置为“无”?
- ssh - 有没有办法使用 ssh 命令从远程服务器复制 .tar.gz 文件?
- python - 基于正则表达式识别列并填充不同默认值的优雅方法
- python-3.x - 如何获取所有子元素的所有完整路径
- android - 如何在 Android 中设计这个组件
- javascript - JS在圆上移动一个角度
- apache - 将 CachedOutputStream 转换为字符串
- python - 在 Python 中对对象列进行分组