猿问

Python没有运行我的程序没有任何错误

我需要创建一个程序来转换 Base 2 中的 Base 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')   

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

慕容708150
浏览 189回答 2
2回答

qq_笑_17

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

弑天下

如果它也有助于检查我的解决方案。因为我猜你不想在单独的行上看到结果,所以我创建了一个列表让你在一行中看到结果。E = int(input('Please enter a number\n'))Eint = Ebase_two=[]while E > 0:&nbsp; &nbsp; a = int(float(E%2))&nbsp; &nbsp; base_two.append(a)&nbsp; &nbsp; E = (E-a)/2base_two.append(0)string = ""for j in base_two[::-1]:&nbsp; &nbsp; string = string+str(j)print("Binary for", Eint, "is", string)print('finished')我迟到了一点:)
随时随地看视频慕课网APP

相关分类

Python
我要回答