如何将字符串的数字乘以其在字符串中的位置

问题描述

我是这方面的新手。我试图将下面 ('10010010') 字符串的每个元素乘以 2 到字符串中元素位置的幂,然后对所有乘法求和。到目前为止,我正在尝试这样做,但我无法弄清楚如何去做。

定义解码值(str1):

# read each character in input string 
for ch in str1: 
    q=sum(2^(ch-1)*ch.isdigit())
return q 

函数调用

打印(解码值('10010010'))

非常感谢您的帮助!

解决方法

我认为您尝试将二进制转换为整数。如果是这样,您可以执行以下操作:

str = '101110101'
#length is counted 1 to n,decrementing by 1 changes to 0-(n-1)
c = len(str)-1 
q = 0
for ch in str:
    print(q,c,ch)
    q = q + (int(ch)*(2**c)) #in python power is '**'
    c = c-1
    if c == -1:
        break

print(q)

您当然可以优化它并在更少的行中完成。 在 python 中 ^ (caret operator) 是一个 Bitwise XOR.