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

时间:2012-02-13 01:00:52

标签: python

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

例如:

a='/'
b=6
c=3

bac

答案应该是2。

3 个答案:

答案 0 :(得分:6)

您可以将内置运算符作为operator模块中的函数:

import operator

a = operator.div
b = 6
c = 3

print a(b, c)

如果你想通过符号获得正确的运算符,可以用它们构建一个dict:

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

a = ops["/"]

答案 1 :(得分:4)

Python有eval()函数可以执行此操作:

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

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

答案 2 :(得分:3)

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

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

查看字符串开头和结尾是否有单引号。

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

>>> eval(bac)
2

相关Is using eval in Python a bad practice?