验证字符串最简单的方法是,它需要是许多数字,并且都是整数?

时间:2019-09-03 17:17:50

标签: python validation

我必须验证字符串是4位还是6位数字。该字符串不能包含任何字符,只能包含整数。如果满足条件,则返回true,否则返回false。

我试图用可接受的数字创建一个列表,然后遍历字符串并进行比较。如果字符串的任何部分不在可接受列表中,我将退出循环并返回false。如果运行总计等于4或6,则应为true。 python代码:

def validate(n):
   count = 0
   valid_list = list(range(10))
   for digit in pin:
      if digit not in valid_list:
         return False
      count += 1

我不确定为什么会以False之类返回1234之类的信息。

2 个答案:

答案 0 :(得分:2)

使用正则表达式怎么样?

import re
str="03506"
pattern="[0-9]{4,6}"
prog=re.compile(pattern)
result=prog.match(str)    
if result:
    return True
else:
    return False

这将匹配4到6个字符长的数字。如果您要匹配长度为4或6的字符串,则可以尝试

import re
str="03506"
pattern1="[0-9]{4}"
pattern2="[0-9]{6}"

if re.match(pattern1,str) or re.match(pattern2, str):
    return True
else:
    return False

答案 1 :(得分:0)

  

我不确定为什么会以False之类返回1234之类的信息。

Python绝不会在整数和字符串之间进行隐式转换,并且整数和字符串之间的比较始终为假。

“ valid_list”是一个整数列表,而“ digit”是一个字符串,因此您将永远在列表中找不到任何内容。