print ("This program reads an unsigned binary number of arbitrary length
\nand tries to compute the decimal equivalent. The program reports an error
\nif the input number contains characters other than 0 and 1.")
dec = 0
bin = 0
factor = 1
print ("Enter the binary number: ")
bin = int(input())
while(bin > 0):
if((bin % 10) == True):
dec += factor
bin //= 10
factor = factor * 2
else:
print("unrecognized bit:")
print ("I think your binary number in decimal form is: " ,dec)
이것은 사용자의 이진수를 10 진수로 변환해야하는 프로그램을위한 코드입니다. 그것은 잘 작동하지만 사용자가 0 또는 1 이외의 숫자를 입력하면 "인식 할 수없는 비트"를 인쇄 할 "else"문을 추가하려고합니다. 종류는 작동하지만 프로그램이 "인식 할 수없는 비트"를 인쇄하더라도 사용자는 0과 1 만 입력했습니다. 이것은 일어나서는 안됩니다. 또한 관련 그림을 참조하십시오. 프로그램을 테스트하기 위해 12343을 입력했습니다. 인식 할 수없는 비트가 있지만 그 숫자에서 "1"을 가져 와서 16으로 변환하면 인식되지 않는 비트가 나타납니다. 이 두 가지 문제는 간단하게 해결할 수 있다고 생각하지만 확실하지 않습니다. 고맙습니다!간단한 파이썬 : 코드 구조에 관하여
질문에있는 코드의 들여 쓰기가 엉망입니다. 질문을 수정하고 수정하십시오. – martineau