Python 3.x 使用python的计算器代码中的空间问题

Python 3.x 使用python的计算器代码中的空间问题,python-3.x,Python 3.x,在编写此代码时,我希望输出必须独立于输入中使用的空间(例如,2*3应给出6,2*3也给出输出6)。我正在共享的代码在使用整数输入时运行良好,但当我使用浮点输入时,它给出的错误如下: 输入计算(例如:2*3):4.7*5 回溯(最近一次呼叫最后一次): 文件“C:/Users/esjvaro/PycharmProjects/Python/condition.py”,第4行,在 num_1,运算符,num_2=输入(“输入计算(例如:2*3):”)。替换(“,”) ValueError:要解压缩的值

在编写此代码时,我希望输出必须独立于输入中使用的空间(例如,2*3应给出6,2*3也给出输出6)。我正在共享的代码在使用整数输入时运行良好,但当我使用浮点输入时,它给出的错误如下:

输入计算(例如:2*3):4.7*5 回溯(最近一次呼叫最后一次): 文件“C:/Users/esjvaro/PycharmProjects/Python/condition.py”,第4行,在 num_1,运算符,num_2=输入(“输入计算(例如:2*3):”)。替换(“,”) ValueError:要解压缩的值太多(应为3个)

我的代码

i=1 而(i>0):

但如果我用split()函数代替replace(“,”),那么计算器在整数和浮点输入上都能正常工作,但这次它取决于空间(例如,2*3显示错误,2*3给出输出6)。此时间错误为:

输入计算(例如:2*3):2*3 回溯(最近一次呼叫最后一次): 文件“C:/Users/esjvaro/PycharmProjects/Python/condition.py”,第4行,在 num_1,运算符,num_2=输入(“输入计算(例如:2*3):”)。split() ValueError:没有足够的值来解包(预期为3,得到1)


请帮助我,并告诉我如何准备一个在输入是整数还是浮点两种情况下都能正常工作的计算器,它必须给出带空格和不带空格的输出。

如果需要拆分它,使运算符和操作数任一侧,而不考虑空格,则可以使用正则表达式

以下是您可以简单地做到这一点的方法:

import re

... 

line = input('Enter the calculation:')
m = re.match(r'\s*(-?[0-9.]+)\s*([+/*-])\s*(-?[0-9.]+)\s*', line)
num_1,operator,num_2 = m.groups()

...
如果您的输入与预期的模式不匹配,则会出现异常


正则表达式在

中解释,如果需要拆分它,以便运算符和操作数任一侧,而不考虑空间,则可能需要使用正则表达式。
import re

... 

line = input('Enter the calculation:')
m = re.match(r'\s*(-?[0-9.]+)\s*([+/*-])\s*(-?[0-9.]+)\s*', line)
num_1,operator,num_2 = m.groups()

...