亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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)這就是您所需要的?,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 條件,以確保我們不會嘗試轉換太大的數字。享受!



查看完整回答
反對 回復 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 關注
  • 197 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號