【发布时间】:2021-12-25 23:37:43
【问题描述】:
正如标题所说,我正在尝试在 python 中制作一个简单的十六进制、整数和二进制数转换器。这是我的代码:
numberToConvert=int(input("Enter a number? "))
base=int(input("Base of the number? "))
toConvertBase = int(input("Base wanted? "))
if base==2:
if toConvertBase==2:
print("Error: Same base.") #works
elif toConvertBase==10:
result=int(numberToConvert)
print(f"Result is {result}")
elif toConvertBase==16:
result=hex(numberToConvert)
print(f"Result is {result[2:]}")
elif base==10: #base10 works
if toConvertBase==10:
print("Error: Same base.")
elif toConvertBase==16:
numberToConvert=int(numberToConvert)
result=hex(numberToConvert)
print(f"Result is {result[2:]}")
elif toConvertBase==2:
numberToConvert=int(numberToConvert)
result=bin(numberToConvert)
print(f"Result is {result[2:]}")
elif base==16:
if toConvertBase==16:
print("Error: Same base.") #works
elif toConvertBase==10:
numberToConvert=hex(numberToConvert)
result=int(numberToConvert)
print(f"Result is {result}")
elif toConvertBase==2:
numberToConvert=hex(numberToConvert)
result=bin(numberToConvert)
print(f"Result is {result[2:]}")
else:
print("Error: Not a supported base")
Base 10 到其他 base 的转换效果很好,但是 base 2 和 16 的转换每次都会抛出这种错误:
Enter a number? 38
Base of the number? 16
Base wanted? 2
Traceback (most recent call last):
File "C:\Users\vortex\Desktop\converter.py", line 34, in <module>
result=bin(numberToConvert)
TypeError: 'str' object cannot be interpreted as an integer
我不知道为什么会出现此错误,因为在第 1 行我的输入被转换为 int。我做错了什么,但我不知道是什么,有人可以帮助我吗?谢谢
【问题讨论】:
-
hex返回str类型。见docs.python.org/3/library/functions.html#hex
标签: python input integer hex bin