2016-02-22 3 views
0

В настоящее время я создаю двоичный код GUI для денатурации и денации в двоичный конвертер. Для ввода двоичной информации для денормации я создал оператор if, который проверяет на номера, отличные от 1 и 0, на входе, однако его способность проверять неправильные символы непредсказуема и не дает достоверных результатов или, по крайней мере, для меня они кажутся ненадежными.Проверка символов на входе

Если кто-то может предложить лучший метод проверки для charcters или может рассказать мне, что не так с моим, это было бы очень оценено.

BToDInput=input("Enter the Binary string ") 
if (("2" or "3" or "4" or "5" or "6" or "7" or "8" or "9") in BToDInput): 
    print("invalid character") 
else: 
    print("character accepted") 

вот скриншот кода, который выполняется. Этот код должен принимать только 1 и 0, но, как видно из изображения, он несовместим и позволяет вводить данные случайно. enter image description here

ответ

0

Для проверки содержимого из двоичной строки, то, вероятно, лучше использовать регулярное выражение:

#Python regular expression library 
import re 

#Get as raw input, so we can process as a string later 
BToDInput = raw_input("Enter the Binary string ") 

#This searches for any character in the string that is not (denoted by the ^) in the range 0 - 1 (deonted by [0-1]) 
#If the search returns an empty list (None), then we know that the string contains nothing but 1's and 0's 
if re.search("[^0-1]", BToDInput) == None: 
    print("character accepted") 
else: 
    print("invalid character") 

Если вы собираетесь делать больше обработок строк, безусловно, читать на библиотеке регулярных выражений в Python : https://docs.python.org/2/library/re.html

Надеюсь, это поможет!

+0

Благодарим вас, да, это помогло, но с этим не было ничего, кроме «raw_input», поскольку это было заменено на «input» в python 3, но кроме этого re.search работает отлично. – user2895823

+0

Рад это слышать! Регулярные выражения действительно полезны, как только вы их повесите :) – lsnare

Смежные вопросы