如何从字符串'/'
中删除'
并将其用于 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
表示string
。 b
和 c
表示 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 是一种不好的做法吗?