如何解决如何将字符串的数字乘以其在字符串中的位置
我是这方面的新手。我试图将下面 ('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.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。