在python中对单个字符串进行无空格迭代并识别浮点和整数

在python中对单个字符串进行无空格迭代并识别浮点和整数,python,data-structures,stack,postfix-notation,Python,Data Structures,Stack,Postfix Notation,我正在尝试构建一个将中缀转换为后缀的算法。以下是示例输入。您可以看到它是一个没有空格的字符串。此外,输入可以使用浮点或整数作为操作数。我试图找出如何从左到右,并确定一个元素是否是操作数(float或int) 这里有人帮过regex: import re a = "11.897/3.4+9.2-0.4*6.9/12.6-16.7=" a2 = [x for x in re.split("(\d*\.?\d*)", a) if x != ''] print(a

我正在尝试构建一个将中缀转换为后缀的算法。以下是示例输入。您可以看到它是一个没有空格的字符串。此外,输入可以使用浮点或整数作为操作数。我试图找出如何从左到右,并确定一个元素是否是操作数(float或int)

这里有人帮过regex:

import re
a = "11.897/3.4+9.2-0.4*6.9/12.6-16.7="
a2 = [x for x in re.split("(\d*\.?\d*)", a) if x != '']
print(a2)

s = []

for i in a2:
  if i >= '0' and i <= '9':
    s.append(i)

print(s)
看起来我得到了我需要的东西:

['11.897', '3.4', '0.4', '6.9', '12.6', '16.7']

你可能在找这样的东西

import re
theInput1 = "234+34*65="
theInput1 = re.split("(12+3)*(56/2)/(34-4)=",theInput1)
x = [char for char in theInput1 if char != '']
def typeOf(s):
    try:return int(s)
    except ValueError:return float(s)
for nums in x:
    y = typeOf(nums)
    print(type(y))

你需要问一个比“任何提示”更具体的问题。到目前为止,您有哪些代码?您有哪些问题?快速提问,您是否正在尝试解决这些输入?正则表达式可以很容易地将这些输入分解为一组数字加上小数点和运算符。
['11.897', '3.4', '0.4', '6.9', '12.6', '16.7']
import re
theInput1 = "234+34*65="
theInput1 = re.split("(12+3)*(56/2)/(34-4)=",theInput1)
x = [char for char in theInput1 if char != '']
def typeOf(s):
    try:return int(s)
    except ValueError:return float(s)
for nums in x:
    y = typeOf(nums)
    print(type(y))