如何从字符串中删除单引号并将其用于 Python 中的除法



如何从字符串'/'中删除'并将其用于 Python 中的除法?

例如:

a='/'
b=6
c=3
bac

答案应该是 2。

您可以从operator模块中获取内置运算符作为函数:

import operator
a = operator.div
b = 6
c = 3
print a(b, c)

如果你想通过符号获得正确的运算符,请从中构建一个字典:

ops = {
    "/": operator.div,
    "*": operator.mul,
    # et cetera
}
a = ops["/"]

Python 有一个 eval() 函数可以做到这一点:

a = "/"
b = "6"
c = "3"
print eval(b + a + c)

但是,请注意,如果您从远程源(例如通过网络(获取输入,则向eval()传递此类代码可能非常危险。它将允许网络用户在您的服务器上执行任意代码。

变量

a中没有单引号。Python只是使用这些来表示a表示stringbc 表示 int s,没有单引号。如果确保所有这些变量都是字符串,则可以将它们join()在一起:

>>> a='/'
>>> b=6
>>> c=3
>>> bac = ''.join(str(x) for x in (b, a, c))
>>> bac
'6/3'

查看字符串开头和结尾如何有单引号。

然后,您可以使用eval() (谨慎(来执行除法:

>>> eval(bac)
2

相关:在 Python 中使用 eval 是一种不好的做法吗?

最新更新