我正在尝试制作一个 Python 程序,将二进制数转换为十进制数

I'm trying to make a Python procedure that converts binary numbers to decimal numbers

我正在尝试使用 Python 中的以下代码创建过程:

print "Program for Binary to Decimal Conversion"
dec = 0`enter code here`
bin = 0
factor = 1;
print "Enter Binary Number:", 
bin = input()
while(bin > 0):
   if( (bin % 10) == 1):
      dec += factor
   bin /= 10
   factor = factor * 2
print "The Decimal Number is: ", dec

它目前在 shell 中运行,询问输入的内容,我想让它像一个程序,这样它就在 python shell 中运行,而不询问任何内容,并且输入行看起来像:

procedure(1110101)

Python中的函数定义如下:

def funcname(args):
    # indented code is not optional
    # these are comments

例如:

def bin_to_dec(binary):
    print "Program for Binary to Decimal Conversion"
    dec = 0
    factor = 1
    while(binary > 0):
       if( (binary % 10) == 1):
          dec += factor
       binary /= 10
       factor = factor * 2
    print "The Decimal Number is: ", dec

现在你可以这样称呼它了

bin_to_dec(10010110)

我建议做一些基础教程来学习 Python 基础知识。网上有很多。

现在检查一下:

def bin_to_dec(binary):
    return int(binary, 2)

>>> print bin_to_dec('10000000')
128

二进制到十进制转换背后的理论是每个数字代表 2 的幂。 所以你可以这样做: - 将数字作为字符串 -遍历字符串,将数字乘以它所代表的 2 的幂 像这样:

    #ex string = 101
    def binToDec(string):
        binString = str(string).reverse() #reverse to make iteration easier sort of
        dec=0;
        place=0;
        for digit in binString:
            dec+= (int(digit))*(2**place)

        return dec

您必须在 Python 中声明一个过程,如 [此处] (http://anh.cs.luc.edu/python/hands-on/3.1/handsonHtml/functions.html)

所示

例如 def bin2dec(数字): 你的代码