是编程的新手,但我正在使用二进制到十进制转换器,并且我试图确保唯一的输入是'0'或'1'而不是alpha,并且不为空”。
我已经弄清楚了非空和非alpha输入的逻辑,但是我无法弄清楚最后一个条件的逻辑-如果1不是字符串或0不是字符串。如果我输入1或零,它会起作用,但这不是我想要的。我只想检查是否只有1或0,然后继续执行程序的其余部分。
我今天已经花了几个小时,因此能提供任何帮助。 :)
预先感谢:)
def convert_to_decimal(binary_number):
print('\n')
#The binary input to be converted, entered as a string.
binary = input('Please enter binary numbera: ')
while binary.isalpha() or binary == '':
print("Please make sure your number contains digits 0-1 only.a ")
binary = input('Please enter numberb: ')
while binary not in '1' and binary not in '0':
print("Please make sure your number contains digits 0-1 only.x ")
binary = input('Please enter numberc: ')
答案 0 :(得分:1)
在这里,我对其进行了一些重做,但效率有些低下,但是在这里。这有点不言而喻,但是基本上它是如何工作的,是否在inputString上进行迭代,并检查每个数字是否为1或0(如果不是),则继续询问,否则继续。
def isBinary(stringNum):
if len(stringNum) ==0:
return False
for chr in stringNum:
if chr != "0" and chr != "1":
return False
return True
def convert_to_decimal():
print('\n')
#The binary input to be converted, entered as a string.
binary = input('Please enter binary number: ')
while not isBinary(binary):
binary = input('Please enter binary number: ')
您的计算机不工作的原因是您说不是1也不是0,这是错误的。如果WHOLE字符串在target(“ 0”)中,则in
在这种情况下返回True。由于“ 10”不是完全以1或0表示,它会再次询问您,因此您可以看到为什么这样不起作用。
答案 1 :(得分:0)
我讨厌自己找到答案,但这很有效:)
def convert_to_decimal(binary_number):
print('\n')
#The binary input to be converted, entered as a string.
binary = input('Please enter binary numbera: ')
while binary.isalpha() or binary == '':
print("Please make sure your number contains digits 0-1 only.a ")
binary = input('Please enter numberb: ')
while not binary.startswith('0') and not binary.startswith('1'):
print("Please make sure your number contains digits 0-1 only.x ")
binary = input('Please enter numberc: ')