[英]check if binary and convert to decimal
我對Python和編碼一般都是新手。 對於我的學校作業,我必須創建一個從二進制轉換為十進制的程序,但是首先我還需要檢查輸入是否為二進制。 基本上-我有單獨的代碼來檢查輸入是否正確以及是否進行了轉換。 關於如何將這兩者結合的任何建議? 這是我有史以來的第一個任務,我真的被卡住了。 請注意,我不允許使用任何內置功能。 感謝您對我在這里犯什么錯誤的任何建議?
my_binary = input("Enter binary number: ")
decimal = 0
index = 0
exponent = len(my_binary) - 1
def b_to_d(my_binary):
for character in my_binary:
if character != '0' and character != '1':
print ('Number is not binary!')
return False
print ('Number is binary')
return True
b_to_d(str(my_binary))
while True and index != len(my_binary):
decimal += int(my_binary[index]) * 2**exponent
index += 1
exponent -= 1
print(decimal)
您的函數是正確的,但是您正在計算十進制數,而不檢查數字是否為二進制。 如果數字為二進制,則僅轉換為十進制。
my_binary = input("Enter binary number: ")
decimal = 0
index = 0
exponent = len(my_binary) - 1
def b_to_d(my_binary):
for character in my_binary:
if character != '0' and character != '1':
print ('Number is not binary!')
return False
print ('Number is binary')
return True
is_binary = b_to_d(str(my_binary))
if is_binary:
while index != len(my_binary):
decimal += int(my_binary[index]) * 2**exponent
index += 1
exponent -= 1
print(decimal)
HariUserX解釋您的代碼中的錯誤。 雖然,我會作為一個補充說明,您的代碼可以大大縮短。
my_binary = input("Enter binary number: ")
try:
decimal = int(my_binary, 2)
except ValueError:
print('Number is not binary!')
上面使用了“請求寬恕而不是允許”的原則。 嘗試將數字轉換為二進制並檢查是否失敗,這種方法在本質上更好地構建了Python。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.