0

したがって、私が達成しようとしているタスクは、「1」+「2」などの 2 つの文字列入力が「3」を返すことです。

このようなことができるようになりたいのですが、

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

だから私はこのような辞書を持っています^、それから私はすることができます

d.get('1')

None を返すことを除いて、1 を返すことを期待して、どうすればこれを回避できますか?

お手伝いありがとう

だからあなたの助けのおかげで、私はそれがうまくいくようになりましたが、何らかの理由で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 が返されますが、それ以上の場合は None と出力されます。

これが私の暗号化装置の始まりです。これまでの助けに感謝します!

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 = {'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 に答える
0

仕組みは次のとおりD.get(k[,d=None]) -> D[k] if k in D else dです。1 の代わりに必ず '1' を使用してください。

于 2013-03-07T16:39:09.917 に答える