小编con*_*mer的帖子

以二叉树方式解析pyparsing中的复杂逻辑表达式

我试图解析复杂的逻辑表达式,如下所示;

x > 7 AND x < 8 OR x = 4
Run Code Online (Sandbox Code Playgroud)

并将解析后的字符串作为二叉树.对于上面的表达式,预期的解析表达式应如下所示

[['x', '>', 7], 'AND', [['x', '<', 8], 'OR', ['x', '=', 4]]]
Run Code Online (Sandbox Code Playgroud)

'OR'逻辑运算符的优先级高于'AND'运算符.括号可以覆盖默认优先级.更一般地说,解析后的表达式应该是这样的;

<left_expr> <logical_operator> <right_expr>
Run Code Online (Sandbox Code Playgroud)

另一个例子是

input_string = x > 7 AND x < 8 AND x = 4
parsed_expr  = [[['x', '>', 7], 'AND', ['x', ',', 8]], 'AND', ['x', '=', 4]]
Run Code Online (Sandbox Code Playgroud)

到目前为止,我想出了这个简单的解决方案,遗憾的是它无法以二叉树方式生成解析表达式.operatorPrecedence似乎没有帮助我这里有连续相同的逻辑运算符,如前面的例子.

import pyparsing as pp
complex_expr = pp.Forward()
operator = pp.Regex(">=|<=|!=|>|<|=").setName("operator")
logical = (pp.Keyword("AND") | pp.Keyword("OR")).setName("logical")
vars = pp.Word(pp.alphas, pp.alphanums + "_") | pp.Regex(r"[+-]?\d+(:?\.\d*)?(:?[eE][+-]?\d+)?")
condition …
Run Code Online (Sandbox Code Playgroud)

python pyparsing

19
推荐指数
2
解决办法
7389
查看次数

如何将本地django制作的网站移动到另一台机器上?

我一直在努力寻找我的查询解决方案,但没有运气.我在我的本地机器上创建了一个使用django的网站.现在我想在另一台机器上安装相同的django制作的网站.MySQL是我正在使用的数据库.如何将本地django制作的网站移动到另一台机器上?如果这个问题已经讨论过了,我很抱歉.

python django

13
推荐指数
1
解决办法
2万
查看次数

使用WTForms的populate_obj()方法与Flask微框架

我有一个模板,允许用户编辑他们的用户信息.

<form method="post">
    <table>
        <tr>
            <td>Username:</td>
            <td>{{user['username']}}</td>
        </tr>
        <tr>
            <td>New Password:</td>
            <td> <input type="password" name="password"></td>
            <td>{% if form.password.errors %} {{form.password.errors}} {% endif %}<td>
        </tr>
        <tr>
            <td>Re-enter Password:</td>
            <td> <input type="password" name="confirm_password">
            </td>
        </tr>
        <input type='hidden' name='username' value="{{user['username']}}">
        <tr>
            <td><input type="submit" value="Submit"></td>
        </tr>
    </table>
</form>
Run Code Online (Sandbox Code Playgroud)

我还有一个用于处理用户编辑的视图功能.我目前使用的数据库是带有MongoKit模块的MongoDB.到目前为止,我只能在视图功能中做到这一点,但没有运气.

def edit():
    username = request.args.get('user')
    user = User.find_one({'username':username}) # Is this a correct way of doing it?
    form = UserForm(**what should be placed here?**, obj=user)

    if request.method == 'POST' and form.validate(): …
Run Code Online (Sandbox Code Playgroud)

python flask mongokit wtforms

7
推荐指数
2
解决办法
1万
查看次数

如何根据嵌套列表中内部列表的第一个元素获取所有最小元素?

简单的说!有这个列表说LST = [[12,1],[23,2],[16,3],[12,4],[14,5]],我想根据内部列表的第一个元素获取此列表的所有最小元素.所以对于上面的例子,答案是[12,1][12,4].这样做python中有什么典型的方法吗?提前感谢你.

python list minimum

3
推荐指数
1
解决办法
2684
查看次数

标签 统计

python ×4

django ×1

flask ×1

list ×1

minimum ×1

mongokit ×1

pyparsing ×1

wtforms ×1