为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕容708150 2021-08-17 17:07:00
我需要创建一个程序来转换 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')   当我运行它时,它会问我号码,但仅此而已,谢谢你们的帮助。
查看完整描述

2 回答

?
qq_笑_17

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 条件,以确保我们不会尝试转换太大的数字。享受!



查看完整回答
反对 回复 2021-08-17
?
弑天下

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

我迟到了一点:)


查看完整回答
反对 回复 2021-08-17
  • 2 回答
  • 0 关注
  • 188 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号