Python 二进制字符串到十进制整数转换器

Python 二进制字符串到十进制整数转换器,python,pseudocode,Python,Pseudocode,我正在尝试编写一个程序,将二进制的4位字符串表示形式转换为十进制(以10为基数)整数 这是我目前得到的,但在我输入4位二进制文件(例如1101)后,它只会显示:'>>>。 以下是流程图: 这是我的密码: def binaryToDenary(): Answer = 0 Column = 8 Bit = int(input("Enter bit value: ")) if Column >1: Answer = Answer + (Column

我正在尝试编写一个程序,将二进制的4位字符串表示形式转换为十进制(以10为基数)整数

这是我目前得到的,但在我输入4位二进制文件(例如1101)后,它只会显示:
'>>>。

以下是流程图:

这是我的密码:

def binaryToDenary():
    Answer = 0
    Column = 8
    Bit = int(input("Enter bit value: "))
    if Column >1:
        Answer = Answer + (Column * Bit)
        Column = Column/2
    elif Column <1:
        print("The decimal value is: " + Answer)


binaryToDenary()
def binaryToDenary():
答案=0
列=8
位=int(输入(“输入位值:”)
如果列>1:
答案=答案+(列*位)
列=列/2

elif Column看起来您还没有实现循环:

def binaryToDenary():
    Answer = 0
    Column = 8
    while not Column < 1:
        Bit = int(input("Enter bit value: "))
        Answer = Answer + (Column * Bit)
        Column = Column/2
    print("The decimal value is: {}".format(Answer))
def binaryToDenary():
答案=0
列=8
而不是列<1:
位=int(输入(“输入位值:”)
答案=答案+(列*位)
列=列/2
打印(“十进制值为:{}”。格式(答案))

您可以使用内置方法,也可以像这样创建自己的函数:

bintodec = lambda arg: sum(int(j) * 2**(len(arg) - i - 1) for i, j in enumerate(arg))

试试这个。这是图表的直接翻译。请注意,在生产代码和实际库中,这不是一个特别有用的函数,只是作为检查练习才有用

def integer_from_binary_input():
    answer = 0
    column = 8
    while True:
        bit_chars = raw_input("Enter bit value:")
        assert len(bit_chars) == 1
        assert bit_chars in "01"
        bit = int(bit_chars)
        answer = answer + column * bit
        column /= 2
        if column < 1:
            break
    print "Decimal value is: %d" % answer
    return answer

output = integer_from_binary_input()
def integer_from_binary_input():
答案=0
列=8
尽管如此:
位字符=原始输入(“输入位值:”)
断言len(位字符)==1
断言“01”中的位字符
位=整数(位字符)
答案=答案+列*位
列/=2
如果列<1:
打破
打印“十进制值为:%d”%s回答
回覆
输出=来自二进制输入()的整数

denary是指以10为基数,对吗?你知道你可以用
int(binary,2)
从以2为基数转到以10为基数。你还没有实现循环。@Malik我相信这些列是以2为基数的。以10为基数的一元。只有普通整数。
int('1101',2)
有什么问题吗。顺便说一句,您在图表中投入了大量精力,但我相信您最好在代码级别进行操作和思考,而不是尝试将算法建模为图表并将其“分解”或“解析”为代码。您忘记了答案是整数,你需要插入到字符串中。你是认真的吗?你不知道字符串的格式是什么?啊…将int插入到字符串中。现在我明白了。你能解释一下这部分代码的作用吗:{}。formatYeah,也就是说,它用参数替换了一组大括号。在这种情况下,它在
之后插入
答案
,十进制值是:“
@Filip Use
bintodec('1010')
”。