除以整数的数字位置的幂



这是我想要完成的:

a = 1235

我的结果 r 应该计算 1/2 + 2/(2*2( + 3/(2*2*2( + 5/(2*2*2*

2*2(,所以r 将输出 1.6875

我试过了。。

s = 123
l = list(map(int, str(s)))      # converted into list
print(l)
y  = [int(x)/(2**s.index(x)) for x in l]            
print(y)

但它不起作用。

不要使用

index(慢,会一遍又一遍地返回第一个索引,这是错误的(,只需使用 enumerate 迭代字符串的索引(加 1(。

然后直接喂给sum

顺便说一句,您的代码可以简化为直接在一行中编写:

y  = sum(int(x)/(2**i) for i,x in enumerate(str(1235),1))

结果:

1.6875

最新更新