【问题标题】:crossing if statement function in pythonpython中的交叉if语句函数
【发布时间】:2020-11-30 23:52:35
【问题描述】:

我正在尝试做一个 if 语句,该语句仅在绿线与黑线相交或红线与黑线相交时通过。请注意,绿线和红线值不等同于 black_line 值,因此在定义 if 语句时,我不能使用 = 或 == 函数。

black_line = [*black line values]
green_line = [*green line values]
red_line = [*red line values]
for i in range(len(black_line)):
    if green_line [i] crosses black_line[i]:   
        print("green line crossed")
    elif red_line [i] crosses black_line[i]:   
        print("red line crossed")

【问题讨论】:

  • “绿线值和红线值不等于 black_line 值”是什么意思,能否在您的问题中添加一些示例值?
  • 您能否在数据结构上带来更高的精度?向我们展示你如何绘制它就足够了
  • 你能想出一个数学规则,根据线条的当前和以前样本值,告诉你是否发生了交叉?提示:想想之前和之后样本之间的差异

标签: python python-3.x list if-statement


【解决方案1】:

如果一条线的先前值低于另一条线且当前值不低于另一条线,则两条线已交叉,反之亦然。

for i in range(1:len(black_line)):
    prev_black = black_line[i-1]
    cur_black = black_line[i]
    prev_green = green_line[i-1]
    cur_green = green_line[i]
    prev_red = red_line[i-1]
    cur_red = red_line[i]

    if prev_black < prev_green != cur_black < cur_green:
        print("green line crossed")
    if prev_black < prev_red != cur_black < cur_red:
        print("red line crossed")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-26
    相关资源
    最近更新 更多