number='2+2'
if number.replace('*','').replace('+','').replace('-','').replace('/','').isdigit():
number=eval(number)
print(f'Ответ: {number}')
else:
print('Ошибка: введено не число')
使用正则表达式(正则表达式):
import re
number='2x2'
x=True
number_split=re.split('[+*-//]', number)
for i in number_split:
if i.isdigit():
continue
print('Ошибка: введено не число')
x=False
break
if x==True:
print(eval(number))
大概是这样的:
eval()函数转换并计算作为字符串传递给它的表达式。
一般来说,使用函数
eval()充满exec()了错误和安全问题。在这里阅读更多内容。是的,一个好方法,但是在使用时
eval()可能会有不太好的input()数据输入(例如删除C盘的命令),所以:if:或者你可以这样做:
此外,这甚至适用于字符串
2+2+2。