[英]check if binary and convert to decimal
我对Python和编码一般都是新手。 对于我的学校作业,我必须创建一个从二进制转换为十进制的程序,但是首先我还需要检查输入是否为二进制。 基本上-我有单独的代码来检查输入是否正确以及是否进行了转换。 关于如何将这两者结合的任何建议? 这是我有史以来的第一个任务,我真的被卡住了。 请注意,我不允许使用任何内置功能。 感谢您对我在这里犯什么错误的任何建议?
my_binary = input("Enter binary number: ")
decimal = 0
index = 0
exponent = len(my_binary) - 1
def b_to_d(my_binary):
for character in my_binary:
if character != '0' and character != '1':
print ('Number is not binary!')
return False
print ('Number is binary')
return True
b_to_d(str(my_binary))
while True and index != len(my_binary):
decimal += int(my_binary[index]) * 2**exponent
index += 1
exponent -= 1
print(decimal)
您的函数是正确的,但是您正在计算十进制数,而不检查数字是否为二进制。 如果数字为二进制,则仅转换为十进制。
my_binary = input("Enter binary number: ")
decimal = 0
index = 0
exponent = len(my_binary) - 1
def b_to_d(my_binary):
for character in my_binary:
if character != '0' and character != '1':
print ('Number is not binary!')
return False
print ('Number is binary')
return True
is_binary = b_to_d(str(my_binary))
if is_binary:
while index != len(my_binary):
decimal += int(my_binary[index]) * 2**exponent
index += 1
exponent -= 1
print(decimal)
HariUserX解释您的代码中的错误。 虽然,我会作为一个补充说明,您的代码可以大大缩短。
my_binary = input("Enter binary number: ")
try:
decimal = int(my_binary, 2)
except ValueError:
print('Number is not binary!')
上面使用了“请求宽恕而不是允许”的原则。 尝试将数字转换为二进制并检查是否失败,这种方法在本质上更好地构建了Python。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.