python的新手,对get()返回None感到困惑

时间:2013-03-07 16:17:10

标签: python

所以我要完成的任务是两个字符串输入,例如'1'+'2'返回'3',

我希望能够做到这样的事情,

d = {'1': 1, '2': 2, '3': 3}

所以我有一个这样的字典^,然后我可以做

d.get('1')

希望它会返回1,除非它返回None,我将如何解决这个问题?

感谢您的帮助

所以感谢你的帮助,我得到了它的工作类型,虽然由于某种原因它只接受加到4和更低的数字,这是代码,所以你可能更好理解

def code_char(char, key):
    d = {'1': 1, '2':2 ,'3': 3 ,'4': 4,'5': 5 ,'6': 6 ,'7': 7 ,'8' :8 ,'9':9}
    f = {1: '1', 2: '2' ,3: '3' ,4: '4' ,'5':5 ,'6':6 ,'7':7 ,'8':8 ,'9':9}
    sum = d.get(char)+d.get(key)
    if sum < 9:
        print(f.get(sum))
    else:
        sum = sum % 10
        value = f.get(sum)
        print(value)
code_char('1','5')

由于某种原因,code+char('1','3')将正确返回3但更高,它将只打印无。

这是我的加密器的开始,感谢目前为止的帮助!

3 个答案:

答案 0 :(得分:1)

不知道为什么它会为你返回None。这是你真正尝试过的吗?

> d = {'1': 1, '2': 2, '3': 3}
> d.get('1')
1

顺便说一句,您可以通过int函数将字符串转换为int。

> int('1') + int('2')
3

答案 1 :(得分:0)

这就是它的工作原理:D.get(k[,d=None]) -> D[k] if k in D else d。请务必使用“1”代替1。

答案 2 :(得分:0)

您可以使用大括号:

>>> d = {'1': 1, '2': 2, '3': 3}
>>> d['1']+d['2']
3

或者,如果你想要一个字符串结果:

>>> str(d['1']+d['2'])
'3'

但实际上 - 执行此操作不需要映射:

>>> str(int('22')+int('33'))
'55'