如何将列表中的数字转换为十进制和八进制?

时间:2012-01-30 05:26:08

标签: python

我需要将我制作的列表中的一些数字转换为十进制和八进制。该列表有效,转换也是如此。但我不能让转换在列表上工作。

print ("Welcome to Python binary convertor!")
print ("When you wish to stop entering numbers press x")
filename = "binarylist.txt"

numlist = []
num = input("Enter a binary number:")
while num !="x":
    numlist.append(num)
    num = input("Enter a binary number:")
def menu():
    print ("Your options are:")
    print ("     1. Convert Binary to Decimal")
    print ("     2. Convert Binary to Octal")
    print (" ")
    return int(input("Choose an option"))
loop = 1
choice = 0
while loop == 1:
    choice = menu()
    if choice == 1:
        result = int(input("Enter a binary number"), 2)
        print (result)
    elif choice == 2:
            result = int(input("Enter a binary number"), 8)
            print (result)
    else:
                print ("Error:Invalid choice  ")
                loop=0

1 个答案:

答案 0 :(得分:0)

Whelp,base的{​​{1}}参数仅用于将字符串转换为整数,而不是格式化。因此,在上述两种情况下,基数应为2。

由于这是一个家庭作业问题,所以在大多数情况下,机器不知道也不关心内存中整数的基数是什么。这是无关紧要的*,因为记忆在基础2中物理地代表了这些东西。基础通常与人类的接口相关。

因此,int会将字符串解码为整数值5.要在不同的基数中编码5,您需要自己进行一些字符串格式化。一个简单的解决方案是将数字除以基数,然后将答案作为最重要的数字。然后将余数除以基数,然后将答案作为下一个有效数字等等。

*科学计算的一些警告,等等等等。

编辑:

是的,正如@mlefavor所指出的那样有内置插件,但考虑到这可能不是你的教授所期待的;)此外,它们在一般情况下不起作用!