Python 带后缀符号的拆分十六进制字符串
如何在Python3.0中使用后缀符号拆分十六进制字符串 例如: 1+5*7+ 答案应该是1+1*5+7=17 每个数字后面都有一个空格,所以我们可以用这个空格来分割这个数字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 >
多谢各位 这会让你走很长一段路。还有很多问题需要你去解决,比如如何处理十六进制数字
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?当您开发更多的测试用例时,您会将它们放在标题中,然后它们会测试您的代码。