私はこの挑戦のアドバイスが必要です。要件は、入力が有効かどうか(つまり、0と1のみ、空白なし、文字なし)、受け入れられるか(2つの1を含むか)を確認することです。次に、入力が有効で受け入れられた場合は、バイナリを10進数に変換します。どんな助けもありがとう!入力がバイナリで、2つの1を含んでいるかどうかを確認してください
#Examples of invalid binary numbers: abc 10102011 10101FF
#0000 1111 (note:contains a space)
#Examples of valid, rejected binary numbers: 00000000 1111 01110000001
#Examples of valid, accepted binary numbers: 1000001 11000000 1111
binary = str(input("Enter a binary number: "))
binary_list = list(binary)
valid = True
accepted = True
convert = ""
var = binary_list.count('1')
for character in binary_list:
if (character != '1') and (character != '0'):
valid = False
for character in binary_list:
if (var != 2):
accepted = False
if (valid == True and accepted == True):
print("Input", binary ,"is valid and accepted")
convert = int(binary, 2)
print ("The number is ", convert)
elif (valid == False):
print ("Input was invalid")
elif (valid == True and accepted == False):
print ("Input was rejected")
私はループを私が欲しいものにすることはできません。最初のものは、すべてが無効であるとか、文字とバイナリに空白をつけることができます。 –
私がしようとしているのは、リスト内の項目のいずれかが1または0でない場合、最初のループで有効な条件をfalseに変更します。 2回目のループでは、1の数が2に等しくない場合、受け入れられた条件をfalseに変更したい。 –