我的目標(biāo)是在列表中找到 1 或 0 以外的任何值并拋出錯誤并跳出循環(huán)。目前它可以檢查任何非整數(shù)值就好了,但我希望避免某些數(shù)字(2-9)。我嘗試檢查 x != '1' 或 x != '0' ,但這沒有用。我很感激任何幫助。decimalTotal = 0digit = 0index = 0power = 7flag = 'false'#get an 8-bit binary numberbinaryNumber = input("Please enter an 8-bit binary number: ")binary_list = list(binaryNumber)if len(binary_list) != 8: print() print("You did not enter an 8-bit length.") print()for x in binary_list: while (power >= 0): try: (int(binary_list[index])) except ValueError: flag = 'true' break else: decimalTotal += (int(binary_list[index])) * (2**(power)) index += 1 power -= 1if flag == 'false': print() print("The decimal value is: ", decimalTotal) print()else: print() print("Invalid binary value entered.") print()
1 回答

狐的傳說
TA貢獻(xiàn)1804條經(jīng)驗 獲得超3個贊
如果您確實需要確保它恰好是 80或1s,那么可能一個簡單的方法是:
import re
binaryNumber = input("Please enter an 8-bit binary number: ")
if not re.match('[01]{8}$', binaryNumber):
print('You did not enter exactly 8 zeros or ones.')
else:
print('Your number as decimal is:', int(binaryNumber, 2))
否則,如果您不關(guān)心它是否正好是 8 位,但可以更少或更多并且只想將其顯示為小數(shù),那么您可以這樣做:
try:
print('Your number as decimal is:', int(binaryNumber, 2))
except ValueError: # couldn't be interpreted as binary
print('Your number was not a valid binary string')
添加回答
舉報
0/150
提交
取消