用if语句连接字符串例如:if 5“> 4”:

时间:2013-03-06 07:35:26

标签: python python-3.x

我想知道是否可以这样做?

s = "> 4"
if 5 s:
    print("Yes it is.")

3 个答案:

答案 0 :(得分:3)

您想要eval

s = "> 4"
if eval("5"+s):
    print("Yes it is.")

Here是关于eval的文档。

请注意,如果您不确切知道输入字符串中的内容,eval非常不安全。请谨慎使用。

答案 1 :(得分:3)

使用eval()可以轻松完成此操作。但是,eval()pretty dangerous,最好避免使用。

有关其他想法,请参阅Safe expression parser in Python

我认为最好的方法取决于s的来源:

1)如果是用户输入,您当然不想使用eval()。表达式解析器可能就是这样。

2)如果以编程方式设置s,您可能最好将其转换为函数:

pred = lambda x:x > 4
if pred(5):
    print("Yes it is.")

答案 2 :(得分:3)

假设您真正想要做的是存储比较“> 4”并在某处使用它,我建议如下:

import operator

class Comparison(object):
    def __init__(self, operator, value):
        self.operator = operator
        self.value = value

    def apply(self, value):
        return self.operator(value, self.value)

s = Comparison(operator.gt, 4)

if s.apply(5):
    print("Yes it is.")