Python通过样本列表检测字符串中的数字

时间:2014-02-22 10:12:01

标签: python string python-2.7 python-3.x

def value(c):

if any(c.isdigit() for c in value):
  print("1")
else:
  print("0")


value = 'www.test.com' #list of sample
value = 'www.123.com'
value = 'www.test.com'

如何通过样本列表检测字符串中的数字?

我必须在1次编译中获取样本列表的输出,是否有任何方法可以在python文件中修改我的代码以循环获取“值”列表而不是仅1?旁边在python shell中编写代码。

2 个答案:

答案 0 :(得分:1)

>>> value = 'www.test.com'
>>> any(c.isdigit() for c in value)
False
>>> value = 'www.123.com'
>>> any(c.isdigit() for c in value)
True
>>> value = 'www.tes$%%^^^t.com'
>>> any(c.isdigit() for c in value)
False

或者你可以这样写:

>>> value = 'www.123.com'
>>> containsdigit = any(c.isdigit() for c in value)
>>> if containsdigit:
...     print("1")
... else:
...     print("0")
... 
1

更新:让我们假设函数def值(c)将列表作为参数。然后我可以这样定义功能。

def value(c):
    for b in c:
        containsdigit = any(a.isdigit() for a in b)
        if containsdigit:
            print("The result of : "+ b + " is 1")
        else:
            print("The result of : " + b +" is 0")
从我的控制台

我可以将列表c声明为c =['www.123.com','www.abc.com','www.dfd#$%%.com']

我现在可以将c传递给我的函数,如下所示:

value(c)

output
The result of : www.123.com is 1
The result of : www.abc.com is 0
The result of : www.dfd#$%%.com is 0

答案 1 :(得分:0)

我不确定我是否正确地提出了问题,但是如果你想检查字符串中是否有某些字符,请使用正则表达式:

import re
if re.search("1","www.test1.com")!=None:
    print("has number")
else:
    print("has no number")

在一个功能中:

values = "01234" # numbers 0,1,2,3,4
# values= "\d" # all digits
def values_in_string(s, values):
  return(re.search(values,s)!=None)