python不等式怎么表示_Python中的不等式和括号

您可以使用dis模块来分析每种情况,以确定到底发生了什么。例如:In [1]: import dis

In [2]: def test():

...: return 3 > 2 is True

...:

In [3]: dis.dis(test)

2 0 LOAD_CONST 1 (3)

3 LOAD_CONST 2 (2)

6 DUP_TOP

7 ROT_THREE

8 COMPARE_OP 4 (>)

11 JUMP_IF_FALSE_OR_POP 21

14 LOAD_GLOBAL 0 (True)

17 COMPARE_OP 8 (is)

20 RETURN_VALUE

>> 21 ROT_TWO

22 POP_TOP

23 RETURN_VALUE

这意味着堆栈在每一步之后都是这样的:

^{pr2}$

对我来说,老实说,它看起来像是Python中的一个bug。也许有一些很好的解释为什么会发生这种情况,但我会向上游报告。

为了以等效的方式重写它,代码可以:

^{3}$

编辑:也许这真的有点奇怪。考虑检查链式不等式的工作原理:3 > 2 > 1 == 3 > 2 and 2 > 1

如果概括为:x op1 y op2 z == x op1 y and y op2 z

这就可以解释这个结果了。在comparison ::= or_expr ( comp_operator or_expr )*

comp_operator ::= "" | "==" | ">=" | "<=" | "<>" | "!="

| "is" ["not"] | ["not"] "in"

is被认为与>一样好的比较,因此应用了多个比较的标准扩展。在

其他的比较现在应该很清楚了。唯一需要的奇怪的新细节是:True == 1,False == 0,所以3 > False在3 > (2 is True)。其他大多数都可以用扩展来解释。例如:5 < 3 is False > 2 is True == False

(5 < 3) and (3 is False) and (False > 2) and (2 is True) == False

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python的solve_qp函数可以用于求解同时含有等式约束和不等式约束的二次规划问题。具体来说,可以将目标函数和约束条件表示为标准二次规划形式,然后使用solve_qp函数进行求解。 对于同时含有等式约束和不等式约束的二次规划问题,可以将其表示为以下形式: minimize 1/2 * x.T * Q * x + c.T * x subject to Ax = b Gx <= h 其,Q是一个对称正定矩阵,表示二次项系数矩阵;c是一个列向量,表示一次项系数向量;A是一个矩阵,表示等式约束条件的系数矩阵;b是一个列向量,表示等式约束条件的右端向量;G是一个矩阵,表示不等式约束条件的系数矩阵;h是一个列向量,表示不等式约束条件的右端向量。 使用solve_qp函数可以求解上述问题的最优解,具体代码如下: ```python import numpy as np from scipy.optimize import solve_qp # 定义目标函数和约束条件 Q = np.array([[2, 0], [0, 2]]) c = np.array([-8, -10]) A = np.array([[1, 1], [2, 1]]) b = np.array([2, 5]) G = np.array([[-1, 0], [0, -1]]) h = np.array([0, 0]) # 求解最优解 x, f = solve_qp(Q, c, G=G.T, h=h, A=A.T, b=b) # 输出最优解 print(x) ``` 其,solve_qp函数的第一个参数Q是一个对称正定矩阵,表示二次项系数矩阵;第二个参数c是一个列向量,表示一次项系数向量;第三个参数G是一个矩阵,表示不等式约束条件的系数矩阵的转置;第四个参数h是一个列向量,表示不等式约束条件的右端向量;第五个参数A是一个矩阵,表示等式约束条件的系数矩阵的转置;第六个参数b是一个列向量,表示等式约束条件的右端向量。 最终输出的x表示最优解,f表示最优解对应的目标函数值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值