Python validate_pin在预期为True时返回False
我正在编写一个函数,如果Python validate_pin在预期为True时返回False,python,parameters,boolean,Python,Parameters,Boolean,我正在编写一个函数,如果pin参数是长度正好为4或6位的int,则该函数应返回True,如果是其他参数,则返回False 下面的代码按预期返回True: def validate_pin(pin): if type(pin) == int and len(str(pin)) == 4: return True elif type(pin) == int and len(str(pin)) == 6: return True else:
pin
参数是长度正好为4或6位的int
,则该函数应返回True
,如果是其他参数,则返回False
下面的代码按预期返回True
:
def validate_pin(pin):
if type(pin) == int and len(str(pin)) == 4:
return True
elif type(pin) == int and len(str(pin)) == 6:
return True
else:
return False
print(validate_pin(1234))
虽然下面的代码返回False
,但当我希望它返回True
时,我不知道其他pin
参数是否应该是True
:
def validate_pin(pin):
if type(pin) == int and len(str(pin)) == 4:
return True
elif type(pin) == int and len(str(pin)) == 6:
return True
else:
return False
print(validate_pin(0000))
我该怎么处理这件事?任何其他反馈也非常感谢:)问题是0000等于0(您可以使用print(0000==0)检查它,它将返回True) 必须将pin作为字符串传递给checker方法,才能将0000作为字符串,这是我的示例代码:
def validate_pin(pin: str) -> bool:
try:
# If it's not an integer it will raise a ValueError exception
parsed_pin = int(pin)
pin_length = len(pin)
return pin_length == 4 or pin_length == 6
except Exception as e:
return False
print(validate_pin('0000'))