Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何用两个不等式简化表达式:if x<;=y和x>;=N_Python_Algorithm_Comparison Operators_Inequality - Fatal编程技术网

Python 如何用两个不等式简化表达式:if x<;=y和x>;=N

Python 如何用两个不等式简化表达式:if x<;=y和x>;=N,python,algorithm,comparison-operators,inequality,Python,Algorithm,Comparison Operators,Inequality,我写这段代码是为了测试某物相对于其他事物的位置。它产生我想要的结果,例如x=4->True,x=11->False。但我想知道我怎么能用一种更为通俗的方式/一行来写这篇文章 x = 4 z = 5 y = z + 5 n = z - 5 if x <= y and x => n: print(True) else: print(False) x=4 z=5 y=z+5 n=z-5 如果x n: 打印(真) 其他: 打印(假) 此解决方案仅适用于整数,而且行数相同,唯

我写这段代码是为了测试某物相对于其他事物的位置。它产生我想要的结果,例如
x=4->True
x=11->False
。但我想知道我怎么能用一种更为通俗的方式/一行来写这篇文章

x = 4
z = 5
y = z + 5
n = z - 5
if x <= y and x => n:
    print(True)
else:
    print(False)
x=4
z=5
y=z+5
n=z-5
如果x n:
打印(真)
其他:
打印(假)

此解决方案仅适用于整数,而且行数相同,唯一的区别是我使用了一个列表来检查x是否在范围内(n,y+1)


如果要检查
x
是否在
z
的某个范围内,请使用简单的差值并取绝对值:

x = 4
z = 5
span = 5
print(abs(x - z) <= span)
这相当于您的原始代码,也相当于

print(z - span <= x and x <= z + span)

print(z-span您可能会问关于链式运算符的问题
如果是n,或者您可能是指
n
-您的代码与问题标题之间存在不一致,即“或等于”bit应该存在或不存在。但无论哪种情况,你都有希望得到原则。我不确定你的目标是“一行”是一个好主意:争取可读的可维护代码,而不是低行数。像你使用的显式简单条件没有错。@barny.携带“显式”极端的情况也一样糟糕。我同意OP的条件是完全清晰的,但是
if
语句本身确实是多余的。@barny.OP引入了两个额外的变量和一个不必要的
if
语句,它将一个已经bool的量转换为
bool
@barny。请记住,您通常不会这样做不需要打印中间数量。您可以对其进行操作或将其返回到其他地方进行操作。清晰度还取决于您对python的总体熟悉程度。@barny。最后,请记住,OP特别要求在可能的情况下编写一行程序。绝对比OP的更好;或者对于“不对称”当然,但是为什么呢?没错,但是这个问题有点抽象,我把它解释为与其他语言不同。
print(z - span <= x <= z + span)
print(z - span <= x and x <= z + span)