我正处在学习python的起步过程中,我正竭尽全力去转换代码中的条目。
我有一个for循环,每个循环我创建4个变量。因此,以下是四个循环的结果。
A B C D
0 0 18 19
0 0 52 52
0 0 18 19
-1 -1 19 52 ** in this loop A have to be 0 , B have to be 0 and D have to be 50
-1 -1 19 20 ** in this case A and B must become 0
预期结果:
A B C D
0 0 18 19
0 0 50 50 (## just a mark no need to be here just to point) , C and D became 50
0 0 18 19
0 0 19 52
0 0 19 20 ** A and B got transformed to 0
所以我认为这可行,我需要的是,所有这些变量都不大于50或小于0。如果它们小于零,则必须变为0;如果大于50,则必须大于50,否则仅是变量本身:
if A < 0:
A = 0
elif A>50:
A = 50
elif 0<A<50:
A=A
elif A < 0:
A = 0
elif B>50:
B = 50
elif 0<B<50:
B=B ......
我还考虑过定义一个函数,并每次将4个变量传递给该函数。
好的,我编辑if,抱歉打错了。让我们更清楚一点,如果每次运行A,B,C和D大于50或小于零,则必须对其进行转换,因此只需使用0
答案 0 :(得分:1)
A = A
不执行任何操作,因此不需要。
由于B
,存在将A
与elif
的比较混合在一起的问题。您应该将它们分开:
if A < 0:
A = 0
elif A > 50:
A = 50
if B < 0:
B = 0
elif B > 50:
B = 50
最后,您可以编写一个可重用的函数:
def clamp(val, minval, maxval):
if val < minval:
return minval
elif val > maxval:
return maxval
else:
return val
并用于:
A = clamp(A, 0, 50)
B = clamp(B, 0, 50)
C = clamp(C, 0, 50)
D = clamp(D, 0, 50)
答案 1 :(得分:0)
可以简化为:
if A < 0:
A = 0;
elif A > 50:
A = 50;
.....
说A = A是多余的