因此用户将以二进制格式输入字符串值.即'01000001'
我想检查他们输入的值,看看是否:
- 只有八个字符.
- 是一种字符串类型
- 并且只包含'0'或'1'
优选地,使用接收用户值的函数来完成,以便我可以随时调用它.如果不满足条件,则返回false.
这就是我到目前为止所提出的......
size = len(teststring)
teststring = '11111111'
def typecheck(value):
if type(user_input) == type(teststring) and len(user_input) == size and contains only 1 | 0
return
Run Code Online (Sandbox Code Playgroud)
你可以在这里使用正则表达式匹配:
reg = re.compile(r'^[01]{8}$')
def typecheck(value):
return isinstance(value, str) and bool(reg.match(value))
Run Code Online (Sandbox Code Playgroud)
或者,因为您要检查二进制格式编号,如何将其转换为int基数2,并查看它是否是有效的转换:
def typecheck(value):
try:
return len(value) == 8 and bool(int(value, 2))
except TypeError, ValueError:
return False
Run Code Online (Sandbox Code Playgroud)