检查字符串是否包含数字

新手上路,请多包涵

我发现的大多数问题都偏向于他们在数字中寻找字母的事实,而我正在寻找我希望成为无数字符串的数字。我需要输入一个字符串并检查它是否包含任何数字以及是否拒绝它。

函数 isdigit() 仅返回 True 如果所有字符都是数字。我只是想看看用户是否输入了一个数字,比如 "I own 1 dog" 之类的句子。

有任何想法吗?

原文由 DonnellyOverflow 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 796
2 个回答

您可以使用 any 功能,与 str.isdigit 功能,像这样

def has_numbers(inputString):
    return any(char.isdigit() for char in inputString)

has_numbers("I own 1 dog")
# True
has_numbers("I own no dog")
# False

或者,您可以使用正则表达式,像这样

import re
def has_numbers(inputString):
    return bool(re.search(r'\d', inputString))

has_numbers("I own 1 dog")
# True
has_numbers("I own no dog")
# False

原文由 thefourtheye 发布,翻译遵循 CC BY-SA 4.0 许可协议

您可以组合使用 anystr.isdigit

 def num_there(s):
    return any(i.isdigit() for i in s)

如果字符串中存在数字,该函数将返回 True ,否则返回 False

演示:

 >>> king = 'I shall have 3 cakes'
>>> num_there(king)
True
>>> servant = 'I do not have any cakes'
>>> num_there(servant)
False

原文由 aIKid 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题