【发布时间】:2019-09-03 17:17:50
【问题描述】:
我必须验证字符串是 4 位还是 6 位。字符串不能包含任何字符,只能包含整数。如果满足条件则返回真,否则返回假。
我尝试创建一个包含可接受数字的列表并遍历字符串并进行比较。如果字符串的任何部分不在可接受的列表中,我将退出循环并返回 false。如果运行总数等于 4 或 6,那么它应该是真的。 蟒蛇代码:
def validate(n):
count = 0
valid_list = list(range(10))
for digit in pin:
if digit not in valid_list:
return False
count += 1
我不确定为什么像 1234 这样的东西被返回为 False。
【问题讨论】:
-
if len(string) in (4, 6) and string.isdigit():?我正在打电话,所以我无法编辑您的帖子并查看您的代码以说明为什么它不起作用 -
大概 OP 实际上想要
isdecimal()instead ofisdigit()。 -
我认为您将 'n' 作为字符串传递(这就是
for digit in n:不返回错误的原因)和 char '1' != int 1 -
另外,请确保您发布的代码准确反映了您遇到的问题。您发布的代码有一个未定义的
pin变量(大概是validate的参数)。 -
valid_list = "0123456789"会更短更简单。
标签: python validation