Python 带后缀符号的拆分十六进制字符串

Python 带后缀符号的拆分十六进制字符串,python,python-3.x,postfix-notation,Python,Python 3.x,Postfix Notation,如何在Python3.0中使用后缀符号拆分十六进制字符串 例如: 1+5*7+ 答案应该是1+1*5+7=17 每个数字后面都有一个空格,所以我们可以用这个空格来分割这个数字 多谢各位 这会让你走很长一段路。还有很多问题需要你去解决,比如如何处理十六进制数字 from string import digits import operator def postfix(seq): """ >>> postfix("11+5*7+") 17 >

如何在Python3.0中使用后缀符号拆分十六进制字符串

例如: 1+5*7+

答案应该是1+1*5+7=17

每个数字后面都有一个空格,所以我们可以用这个空格来分割这个数字


多谢各位

这会让你走很长一段路。还有很多问题需要你去解决,比如如何处理十六进制数字

from string import digits
import operator

def postfix(seq):
    """
    >>> postfix("11+5*7+")
    17
    >>> postfix("62/")
    3
    """
    stack = []
    ops = {
        '+': operator.__add__,
        '-': operator.__sub__,
        '*': operator.__mul__,
        '/': operator.__div__,
    }
    for c in seq:
        if c in digits:
            stack.append(int(c))
        else:
            right = stack.pop()
            left = stack.pop()
            op = ops[c]
            stack.append(op(left, right))
    return stack[-1]

if __name__ == '__main__':
    import doctest
    doctest.testmod()

这是一个十六进制字符串吗?我的意思是十六进制中有数字,例如e1+B*我尝试过执行这个,但没有得到答案。因为我是python的新手,请稍微解释一下:print postfix 11+5*7+和print postfix 62/。postfix中的字符串是一系列doctest,他们说,如果postfix工作正常,它将在给定此输入的情况下生成此输出。在这种情况下,承诺是:如果你通过我的“11+5*7+”,我会给你17分;如果你通过我的“62/”,我会给你3分。了解了?这就像是开发人员如何思考/承诺它将如何工作的文档。它还提出了一个问题:你认为26/应该产生3,还是62/应该产生3?当您开发更多的测试用例时,您会将它们放在标题中,然后它们会测试您的代码。