python - 检查是否为二进制并转换为十进制
问题描述
我对 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)
解决方案
HariUserX解释了代码中的错误。虽然,我想补充一点,您的代码可以大大缩短。
my_binary = input("Enter binary number: ")
try:
decimal = int(my_binary, 2)
except ValueError:
print('Number is not binary!')
以上使用了“请求原谅而不是许可”的原则。尝试将数字转换为二进制并检查它是否失败,使用这种方法构建 Python 天生就更好。
推荐阅读
- javascript - React js - 有没有其他方法来优化我的条件代码
- image-segmentation - 使用自定义数据集注释图像以训练 YOLO
- docusignapi - DocuSign 何时为 Chrome 80 做好准备?- sameSite cookie 更改
- c# - 在迁移中编写更新 sql 脚本
- angular - 如何限制角料垫芯片的字符大小?
- java - Java中的贝塞尔曲线与点
- c# - C# WCF 客户端参数异常 XmlNode[] 无法转换为类型“...”
- ios - 如何在我的 ios 应用程序中检索嵌套的 firebase 数据?
- python - 如何合并 2 个不同长度的数据框并保留第一个数据框的所有位置?
- python - 无法导入 Selenium 包