2 回答

TA貢獻1818條經驗 獲得超7個贊
從快速檢查來看range(100,0),B、 和Print()是這里的三個罪魁禍首!如果您想傳遞從 0 到 99 的數字,那么range(100)這就是您所需要的?,F在,什么是 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')
我遲到了一點:)
添加回答
舉報