簡體   English   中英

如何限制python中的輸入,使其僅允許0或1?

[英]How do I limit an input in python so it will only allow 0 or 1's?

我在python中有一個二進制轉換器,在這種情況下,我想知道如何將輸入限制為某些數字。 只有1或0。 因此101010001是有效的,但例如44是無效的。 謝謝。

您也可以嘗試將其轉換為二進制形式的整數,如果失敗則打印消息。

query = raw_input("enter binary number ")

try:
    is_bin = int(query,2)
    is_bin = True
    print "correct number"
except ValueError:
    is_bin = False
    print "not a binary number"

您將需要使用正則表達式 您需要使其在任何位置匹配0或1。 在這種情況下,正則表達式為[01]*

您不能阻止輸入字符串,但是可以在事實發生后將其與正則表達式進行匹配並采取適當的措施。 引發異常是一種可能性。

import re

if not re.match("^[01]*$", input_value):
    raise ValueError("Not a binary number")

沒有正則表達式:

if all(ch in "01" for ch in input_str):
    raise ValueError("'{}' is not valid binary".format(input_str))

正則表達式可以工作,但是簡單的迭代也可以:

def binaryConverter(input_value):
    for c in input_value:
        if c not in '01':
            # do something here, for example:
            raise ValueError("Not a binary number")
    return int(input_value, 2)

如果只想進行簡單的二進制轉換,則可以使用int(input_value, 2)這將為所有非0或1的字符自動引發ValueError。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM