我有一个包含比较运算符列表的数组。如何随机选择一个来使用?我尝试了以下但失败了。
from random import choice
logi = ["<",">","=="]
n=20
n2 = choice(range(1,100))
if n choice(logi) n2: print n2
我有一个包含比较运算符列表的数组。如何随机选择一个来使用?我尝试了以下但失败了。
from random import choice
logi = ["<",">","=="]
n=20
n2 = choice(range(1,100))
if n choice(logi) n2: print n2
看看operator
:
import operator
logi = [operator.lt, operator.gt, operator.eq]
...
if choice(logi)(n, n2):
print n2
您不想采用运算符的文本表示,而是采用一些功能表示。为此,操作员模块是完美的:
import operator
logi = [operator.lt, operator.gt, operator.eq]
然后,您可以使用以下方法应用此功能choice
:
n = 20
n2 = choice(range(1,100))
if choice(logi)(n, n2):
print n2
是的,您可以 -- 使用该operator
模块。
from random import choice
from operator import lt, gt, eq
logi = [lt, gt, eq]
n=20
n2 = choice(range(1,100))
if choice(logi)(n, n2): print n2
偏航!
正如@sweeneyrod所说,我必须警告。不建议使用,尤其是在用户输入的情况下。eval
这只是一种可能的方法,但不推荐这样做
from random import choice
logi = ["<",">","=="]
n=20
n2 = choice(range(1,100))
if eval("n%sn2"%choice(logi)): print n2
或者
import operator
logi = [operator.lt, operator.gt, operator.eq]
n=20
n2 = choice(range(1,100))
if choice(logi)(n, n2): print n2