随机使用比较运算符?

时间:2013-10-17 15:16:06

标签: python python-2.7 operators

我有一个包含比较运算符列表的数组。如何随机选择一个使用?我尝试了以下但失败了。

from random import choice
logi = ["<",">","=="]
n=20
n2 = choice(range(1,100))
if n choice(logi) n2: print n2

4 个答案:

答案 0 :(得分:12)

看看operator

import operator
logi = [operator.lt, operator.gt, operator.eq]

...

if choice(logi)(n, n2):
    print n2

答案 1 :(得分:5)

您不想采用运算符的文本表示,而是采用一些功能表示。为此,operator module是完美的:

import operator

logi = [operator.lt, operator.gt, operator.eq]

然后,您可以使用choice

来应用此功能
n = 20
n2 = choice(range(1,100))
if choice(logi)(n, n2): 
    print n2

答案 2 :(得分:3)

是的,你可以 - 使用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

答案 3 :(得分:1)

航向!
正如 @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