2 回答

TA贡献1818条经验 获得超7个赞
从快速检查来看range(100,0),B、 和Print()是这里的三个罪魁祸首!如果您想传递从 0 到 99 的数字,那么range(100)这就是您所需要的。现在,什么是 B?打印应该小写:print.
修复这些语法错误后,让我们尝试重新访问该程序并了解它应该做什么。玩得开心 :-)
编辑以修复问题中的代码:
E = input('Please enter a number: ')
Eint = int(E)
for N in range(8,-1,-1):
if 2**N > Eint:
print(0, end='')
else:
Eint = Eint - 2**N
print(1, end='')
print()
print('finished')
请注意,Python 是一种使用缩进来表示代码块的语言。此代码将十进制转换为二进制。现在,请注意范围开始的 8 为您提供了有关代码可以转换的数字上限的提示。因此,必须在第二条语句之后添加一个 if 条件,以确保我们不会尝试转换太大的数字。享受!

TA贡献1818条经验 获得超8个赞
如果它也有助于检查我的解决方案。因为我猜你不想在单独的行上看到结果,所以我创建了一个列表让你在一行中看到结果。
E = int(input('Please enter a number\n'))
Eint = E
base_two=[]
while E > 0:
a = int(float(E%2))
base_two.append(a)
E = (E-a)/2
base_two.append(0)
string = ""
for j in base_two[::-1]:
string = string+str(j)
print("Binary for", Eint, "is", string)
print('finished')
我迟到了一点:)
添加回答
举报