简短许多if条款

时间:2015-11-14 22:06:36

标签: python if-statement

我的代码中有这个小东西,但是有5倍的时间......是否有可能以任何方式缩短它?

if counter==1:
    x1=x+0.1
    x-=0.1
    x_add=0.01
if counter==2:
    x1=x+0.01
    x-=0.01
    x_add=0.001
if counter==3:
    x1=x+0.001
    x-=0.001
    x_add=0.0001

2 个答案:

答案 0 :(得分:6)

使用另一个变量怎么样?

factor = 1.0 / (10 ** counter) # x=1 -> 0.1 ; x=2 ->0.01 ...
x1 = x + factor
x -= factor
x_add = factor / 10

我没有对此进行测试,但这个想法很明确。不需要if

答案 1 :(得分:1)

0.1的指数看起来跟x1 = x + 0.1 ** counter x -= 0.1 ** counter x_add = 0.1 ** (counter + 1) 一样:

while ((c = in.read()) != -1)