Python 3.x 如何对一串数字中的特定数字执行数学运算

Python 3.x 如何对一串数字中的特定数字执行数学运算,python-3.x,Python 3.x,如果我输入一个随机数,比如1101,我如何将第一个数字乘以8,第二个数字乘以4,第三个数字乘以2,第四个数字乘以1,然后将这些值相加 您可以使用 >>int(“1101”,2) 13 >>>内部(str(1101),2) 13 >>>内部(“1000111101010011101”,2) 293533 >>>内部(“38”,2) 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 内部(“38”,2) ValueError:基为2的int()的文本无效:“38” 您可以使用int('1')将“

如果我输入一个随机数,比如1101,我如何将第一个数字乘以8,第二个数字乘以4,第三个数字乘以2,第四个数字乘以1,然后将这些值相加

您可以使用

>>int(“1101”,2)
13
>>>内部(str(1101),2)
13
>>>内部(“1000111101010011101”,2)
293533
>>>内部(“38”,2)
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
内部(“38”,2)
ValueError:基为2的int()的文本无效:“38”
您可以使用int('1')将“1”解析为1

r=“1101”

sum=int(r[0])*8+int(r[1])*4+int(r[2])*2+int(r[3])*1

欢迎来到SO。你试过什么代码?解决方案的哪一部分被卡住了?所以我使用list(str(1101))将1101拆分为['1','1','0','1']。我想知道如何处理列表中的特定部分,比如说将第一个数字乘以8。
>>> int("1101", 2)
13
>>> int(str(1101), 2)
13
>>> int("1000111101010011101", 2)
293533
>>> int("38", 2)
Traceback (most recent call last):
  File "<pyshell#50>", line 1, in <module>
    int("38", 2)
ValueError: invalid literal for int() with base 2: '38'