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

我必须验证字符串是 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。


Helenr
浏览 144回答 2
2回答

一只甜甜圈

用正则表达式怎么样?import restr="03506"pattern="[0-9]{4,6}"prog=re.compile(pattern)result=prog.match(str)    if result:    return Trueelse:    return False这匹配长度在 4 到 6 个字符之间的数字。如果您的意思是要匹配那些 4 或 6 长的字符串,您可以尝试import restr="03506"pattern1="[0-9]{4}"pattern2="[0-9]{6}"if re.match(pattern1,str) or re.match(pattern2, str):    return Trueelse:    return False

手掌心

我不确定为什么像 1234 这样的东西被返回为 False。Python 永远不会在整数和字符串之间进行隐式转换,并且整数和字符串之间的比较总是错误的。“valid_list”是一个整数列表,但“digit”是一个字符串,所以你永远不会在你的列表中找到任何东西。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python