我需要将我制作的列表中的一些数字转换为十进制和八进制。该列表有效,转换也是如此。但我不能让转换在列表上工作。
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
答案 0 :(得分:0)
Whelp,base
的{{1}}参数仅用于将字符串转换为整数,而不是格式化。因此,在上述两种情况下,基数应为2。
由于这是一个家庭作业问题,所以在大多数情况下,机器不知道也不关心内存中整数的基数是什么。这是无关紧要的*,因为记忆在基础2中物理地代表了这些东西。基础通常与人类的接口相关。
因此,int
会将字符串解码为整数值5.要在不同的基数中编码5,您需要自己进行一些字符串格式化。一个简单的解决方案是将数字除以基数,然后将答案作为最重要的数字。然后将余数除以基数,然后将答案作为下一个有效数字等等。
*科学计算的一些警告,等等等等。
编辑:
是的,正如@mlefavor所指出的那样有内置插件,但考虑到这可能不是你的教授所期待的;)此外,它们在一般情况下不起作用!