Python没有运行我的程序

2024-04-25 00:44:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要创建一个程序来转换以2为基数的10进制数。在

接下来是代码,即使没有错误也无法按预期运行:

E = input('Please enter a number') 
Eint= int(E)
for N in range(100,0):
    while 2**N > Eint:
         N = N-1 
         print(0)  
    if B**N <= Eint:
        Eint = Eint - 2**N 
        print(1)   
    Print('finished')   

当我运行它时,它会问我号码,但仅此而已,谢谢你们的帮助。在

enter image description here


Tags: 代码in程序numberforinput错误range
2条回答

通过快速检查,range(100,0)B,和{}是这里的三个罪魁祸首!如果您想传递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条件,以确保我们不会试图转换太大的数字。享受吧!在

如果这有助于检查我的解决方案。因为我想您不想在单独的行中看到结果,所以我创建了一个列表,让您在一行中看到结果。在

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')

我迟到了一点:)

相关问题 更多 >