我目前在十年级,正在用Python为学校制作一个将二进制数转换为十进制数以及反过来的程序。由于我的编程知识不是很好,因此程序可能不够高效,请您见谅。
以下代码检查用户输入是否只包含1和0,并且不超过8位。当我运行它并输入一个无效的数字时,它可以正常地循环,但当我输入一个有效的数字时,它会一直返回到输入命令,并要求我输入内容,而不是跳出循环并继续下一个操作。请帮忙解决!
max_8bits = 1
only_bin = 1
while max_8bits > 0 or only_bin > 0:
b2d_num = input("Enter a binary number:")
for i in range(len(b2d_num)):
if b2d_num[i] == "0" or b2d_num[i] == "1":
if i == len(b2d_num):
only_bin -= 1
else:
print("Only enter a binary number! (0's and 1's)")
break
if len(b2d_num) > 8:
print("Only enter up to 8 bits!")
elif len(b2d_num) <= 8:
max_8bits -= 1