我是python新手,我正试图根据我所知道的创建一个转换计算器(在binary
、hex
和integer
之间),只是为了练习我(缺乏)的技能。这是我的密码:
def binary_to_integer(num1):
bin_to_int = int(num1, 10)
return(bin_to_int)
def integer_to_binary():
print('valhold')
def binary_to_hexadecimal():
print('valhold')
def integer_to_hexadecimal():
print('valhold')
def hexadecimal_to_binary():
print('valhold')
def hexadecimal_to_integer():
print('valhold')
choices = ['binary','hexadecimal','integer']
print(choices)
convert_to = input("What would you like to convert TOO?\n")
convert_from = input("What are you converting from?\n")
convert_to = convert_to.lower()
convert_from = convert_from.lower()
num1 = input("Enter a number\n")
if convert_from == "binary" and convert_to == "integer":
print(binary_to_integer(num1))
elif convert_from == 'integer' and convert_to == 'binary':
print(integer_to_binary(num1))
elif convert_from == "binary" and convert_to == "hexadecimal":
print(binary_to_hexadecimal(num1))
elif convert_from == 'integer' and convert_to == 'hexadecimal':
print(integer_to_hexadecimal(num1))
elif convert_from == 'hexadecimal' and convert_to == 'binary':
print(hexadecimal_to_binary(num1))
elif convert_from == 'hexadecimal' and convert_to == 'integer':
print(hexadecimal_to_integer(num1))
else:
print("not a valid operation")
print(exit())
“valhold”意味着我仍然需要在那里写代码,所以忽略它。是的,我的代码很长,重复性很强,可以缩短,但是我正在尝试使用我学到的所有东西。
快进到binary-to_integer()
函数(从if语句激活),我的用户输入是“0b101101”(45作为整数)。我不断得到以下错误:
ValueError: invalid literal for int() with base 10: '0b101101'
我试过转换成float
而不是int
,但是没有帮助。我该怎么做才能让用户输入一个二进制val(以num1为单位),并且用户可以接收一个int val作为输出
如果可能的话,我还想继续使用bin
命令(与hex
和int
相同)
注意:我知道您可以在REPL-it的命令行上执行此操作,但我希望在代码中执行此操作(Repl.it是我当前的IDE)
bin()
命令只能将十进制数转换为二进制表示,而不能相反。还有一个hex()
函数对十六进制值执行相同的操作。 如果需要十六进制或二进制数的十进制值,可以使用eval()
函数相关问题 更多 >
编程相关推荐