0

所以我要完成的任务是让两个字符串输入,如“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 但更高,它只会打印无。

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

4

3 回答 3

1

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

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

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

> int('1') + int('2')
3
于 2013-03-07T16:21:11.990 回答
0

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

于 2013-03-07T16:39:09.917 回答
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'
于 2013-03-07T16:45:11.490 回答